ValueError:您尝试将包含16层的权重文件加载到具有0层的模型中

时间:2018-08-11 11:20:48

标签: python neural-network keras

我遇到了一些答案,说当我们在 .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)

1 个答案:

答案 0 :(得分:0)

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

from keras.applications.vgg16 import VGG16

Here是指向其他模型的链接