时间:2021-05-22
问题描述:训练结束后,保存model为hdf5和yaml格式的文件
yamlFilename = os.path.join(dir,filename)yamlModel = model.toyaml()with open(yamlFilename, "w") as yamlFile: yamlFile.write(yamlModel)随后load model
with open(chkptFilename,'r') as f: model_yaml = f.read()model = KM.model_from_yaml(model_yaml,customs_objects={"dict":dict})model.load_weights(weightFilename)但是报错
问题分析:
经过debug分析,原因出在model建立过程中前面lambda层的inbound_node列表中含有后面层,因此从上到下load时,会找不到后面层。重新建立一次model,然后用model.summary() 可以看出其中的原因。
出现这种情况,可能的原因在于,该lambda层在其他py文件中定义,然后import进来,前后多次用到这个lambda层的话,在模型编译过程中,该lambda层可能只编译了一次,前后层共用之,导致后面层结点出现在前面层的inbound_node列表中。
解决办法:
不要在其他py文件中自定义lambda层,直接将其定义在model建立的文件中。或者直接继承Layer层,在其他py文件中重新自定义该层。
补充知识:加载keras模型'tf' is not defined on load_model() - using lambda NameError: name 'tf' is not defined报错
解决方法如下:
import tensorflow as tfimport kerasmodel = keras.models.load_model('my_model.h5', custom_objects={'tf': tf})以上这篇keras load model时出现Missing Layer错误的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
错误展示new_model=load_model(“model.h5”)报错:1、kerasload_modelvalueError:UnknownLayer:
关于保存h5模型、权重网上的示例非常多,也非常简单。主要有以下两个函数:1、keras.models.load_model()读取网络、权重2、keras.mo
错误描述:1、保存模型:model.save_weights('./model.h5')2、脚本重启3、加载模型:model.load_weights('./m
1、image.load_img()fromkeras.preprocessingimportimageimg_keras=image.load_img('./
layer的两个函数:get_weights(),set_weights(weights)。详情请参考about-keras-layers。补充知识:Keras