python – keras加载模型错误尝试将包含17个图层的权重文件加载到具有0个图层的模型中
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – keras加载模型错误尝试将包含17个图层的权重文件加载到具有0个图层的模型中,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1566字,纯文字阅读大概需要3分钟。
内容图文
![python – keras加载模型错误尝试将包含17个图层的权重文件加载到具有0个图层的模型中](/upload/InfoBanner/zyjiaocheng/718/d811ad3fd6b54ba79d2fcd0e52db6407.jpg)
我目前正在使用keras的vgg16模型.
我用我的一些图层微调vgg模型.
在拟合我的模型(训练)之后,我用model.save(‘name.h5’)保存我的模型.
它可以毫无问题地保存.
但是,当我尝试使用load_model函数重新加载模型时,它显示错误:
You are trying to load a weight file containing 17 layers into a model
with 0 layers
以前有人遇到过这个问题吗?
我的keras verion是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,
只是为了表明我的问题.
解决方法:
看来这个问题与第一层的input_shape参数有关.我有一个包装层(双向)没有input_shape参数设置这个问题.在代码中:
model.add(Bidirectional(LSTM(units=units, input_shape=(None, feature_size)), merge_mode='concat'))
不能用于加载我的旧模型,因为input_shape仅为LSTM层而不是外层定义.代替
model.add(Bidirectional(LSTM(units=units), input_shape=(None, feature_size), merge_mode='concat'))
因为包装器Birectional层现在有一个input_shape参数.也许您应该检查是否设置了VGG net input_shape参数,或者您应该使用正确的input_shape参数向模型添加单个input_layer.
内容总结
以上是互联网集市为您收集整理的python – keras加载模型错误尝试将包含17个图层的权重文件加载到具有0个图层的模型中全部内容,希望文章能够帮你解决python – keras加载模型错误尝试将包含17个图层的权重文件加载到具有0个图层的模型中所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。