keras load model时出现Missing Layer错误的解决方式
2020-06-20 11:47
134 查看
问题描述:训练结束后,保存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 tf import keras model = keras.models.load_model('my_model.h5', custom_objects={'tf': tf})
以上这篇keras load model时出现Missing Layer错误的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- 【keras】load model时出现Missing Layer错误
- 打开eclipse 时出现Failed to load the JNIshared libraryd的解决方式
- 出现错误“tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform”的解决办法
- 学习内核驱动是出现的错误及其解决方式
- 当前用户更改运行方式出现错误的解决办法
- 打开eclipse 时出现Failed to load the JNIshared libraryd的解决方式
- ubuntu 18.04版本虚拟机安装时出现错误not syncing : corrupted stack end detected inside scheduler的解决方式
- apt-get install安装软件时出现依赖错误解决方式
- 支付宝出现“错误代码 HAS_NO_PRIVILEGE”的错误解决方式
- springboot项目中Not allowed to load local resource:错误的解决方式
- 让sql2005运行在独立用户下出现 WMI 提供程序错误的解决方式
- 【转载】pyinstaller打包python文件后,运行出现"Failed to execute script xxx.exe"错误的解决方式(No module named 'xxx')
- cytoscape 安装后打开时出现错误:The JVM could not be started.....的解决方式
- Android使用achart绘图框架出现java.lang.NoClassDefFoundError错误解决方式
- 解决Linux CentOS下安装Eclipse C/C++后启动出现Failed to load 这个libjvm.so库文件的错误
- Ubuntu 7.10安装mplayer出现failed to load: drvc.so错误的解决办法
- MySQL导出数据库结构出现Cannot load from mysql.proc错误的解决方法
- 通过TCODE执行QUERY时,出现错误 LOAD_PROGRAM_NOT_FOUND之解决.
- eclipse 出现Failed to load the JNI shared library jvm.dll 错误的解决办法
- redis 创建集群时 出现的错误解决方式