【发布时间】:2018-11-27 12:30:55
【问题描述】:
我目前正在使用 keras 开发 vgg16 模型。
我用我的一些层微调 vgg 模型。
拟合模型(训练)后,我将模型保存为 model.save('name.h5')。
它可以毫无问题地保存。
但是,当我尝试使用load_model 函数重新加载模型时,它会显示错误:
您正在尝试将包含 17 层的权重文件加载到模型中 0层
以前有人遇到过这个问题吗? 我的 keras 版本是 2.2。
这是我的代码的一部分...
from keras.models import load_model
vgg_model = VGG16(weights='imagenet',include_top=False,input_shape=(224,224,3))
global model_2
model_2 = Sequential()
for layer in vgg_model.layers:
model_2.add(layer)
for layer in model_2.layers:
layer.trainable= False
model_2.add(Flatten())
model_2.add(Dense(128, activation='relu'))
model_2.add(Dropout(0.5))
model_2.add(Dense(2, activation='softmax'))
model_2.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model_2.fit(x=X_train,y=y_train,batch_size=32,epochs=30,verbose=2)
model_2.save('name.h5')
del model_2
model_2 = load_model('name.h5')
其实我并没有立即删除模型然后load_model,
只是为了显示我的问题。
【问题讨论】:
-
我可以在我的机器上毫无问题地运行您的代码(当然,没有合适的部分)。这是一个奇怪的错误...您确定这是您使用的确切代码吗?你在 Anaconda 上使用 Keras 吗?
标签: python model keras deep-learning