首页 > 解决方案 > ValueError:您正在尝试将包含 16 层的权重文件加载到具有 0 层的模型中

问题描述

我遇到了一些答案,说当我们在.keras/models/目录中声明预训练模型权重文件时,它会自动下载。vgg=VGG16(weights='imagenet')我设法从目录中找到文件并将其复制到我的工作目录中。当我尝试加载模型时,脚本返回错误

ValueError: You are trying to load a weight file containing 16 layers into 
a model with 0 layers.

我应该怎么办?

我的源代码如下

model=Sequential()
model.add(Concatenate([image_model, language_model]))
model.add(LSTM(1000, return_sequences=False))
model.add(Dense(vocab_size))
model.add(Activation('softmax'))
model.load_weights('./models/vgg16_weights.h5')
model.compile(loss='categorical_crossentropy', optimizer=Nadam(), 
metrics=['accuracy'])
model.summary()

model.fit([images, captions], next_words, batch_size=512, epochs=50)

标签: pythonneural-networkkeras

解决方案


我认为在较新版本的 Keras 中,您不需要定义模型架构和加载权重,而是可以像这样直接从 Keras 加载 VGG16 模型

from keras.applications.vgg16 import VGG16

是其他型号的链接


推荐阅读