完美解决keras保存好的model不能成功加载问题


Posted in Python onJune 11, 2020

前两天调用之前用keras(tensorflow做后端)训练好model,却意外发现报错了!!之前从来没有过报错!!错误内容粘贴如下:

File “h5py_objects.pyx”, line 54, in h5py._objects.with_phil.wrapper (C:\Minonda\conda-bld\h5py_1496885653697\work\h5py_objects.c:2867)

File “h5py_objects.pyx”, line 55, in h5py._objects.with_phil.wrapper (C:\Minonda\conda-bld\h5py_1496885653697\work\h5py_objects.c:2825)

File “h5py\h5f.pyx”, line 78, in h5py.h5f.open (C:\Minonda\conda-bld\h5py_1496885653697\work\h5py\h5f.c:2140)
OSError: Unable to open file (File signature not found)

意思好像就是文件结构找不到了,然后我百度了,他说是训练好的文件数据丢失了,重新训练就好了。

但是,我重新训练了好几次,确保训练的model文件没有错误,在调用时依然报了同样的错误。

一气之下,我卸载了h5py,然后重新安装h5py的最新版本,问题竟然神奇的解决了,哈哈哈哈!幸运!

补充知识:Keras使用 Lambda后训练出的模型加载后,预测结果为随机

问题

Keras 使用 Lambda后训练出的模型加载后,预测结果为随机accuracy

解决方案

原因出在,我构建模型的时候需要用到TensorFlow的一些函数,所以用了Lambda,有把一些需要训练weights的层也写到了里面。

重点就在这,模型权重保存的时候,没保存Lambda里面的。

用notepad打开权重文件,发现里面保存的Tensor不包含这些,所以每一次重新加载模型测试的时候都会重新初始化一些层的权重,导致结果是随机的。

结论

不要在Lambda层里面加入任何需要训练权重的层

模型保存出错的时候,看一下模型文件里面保存的Tensor是否一致

以上这篇完美解决keras保存好的model不能成功加载问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python命令行解析模块详解
Feb 01 Python
Python+Django搭建自己的blog网站
Mar 13 Python
DataFrame中去除指定列为空的行方法
Apr 08 Python
详解python Todo清单实战
Nov 01 Python
Python元组知识点总结
Feb 18 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
感知器基础原理及python实现过程详解
Sep 30 Python
Python龙贝格法求积分实例
Feb 29 Python
Eclipse配置python默认头过程图解
Apr 26 Python
python中对二维列表中一维列表的调用方法
Jun 07 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
Nov 24 Python
pytorch中[..., 0]的用法说明
May 20 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 #Python
Pyinstaller加密打包应用的示例代码
Jun 11 #Python
解决keras加入lambda层时shape的问题
Jun 11 #Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 #Python
keras slice layer 层实现方式
Jun 11 #Python
Spring http服务远程调用实现过程解析
Jun 11 #Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 #Python
You might like
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
jquery图片延迟加载 前端开发技能必备系列
2012/06/18 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
详解Nodejs之npm&package.json
2017/06/15 NodeJs
利用node.js实现自动生成前端项目组件的方法详解
2017/07/12 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
python处理文本文件并生成指定格式的文件
2014/07/31 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
python移位运算的实现
2019/07/15 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
学python最电脑配置有要求么
2020/07/05 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
python 高阶函数简单介绍
2021/02/19 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
有模特经验的简历自我评价
2013/09/19 职场文书
编辑个人求职信范文
2013/09/21 职场文书
中专生求职自荐信范文
2013/12/22 职场文书
烹调加工管理制度
2014/02/04 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
法学院毕业生求职信
2014/06/25 职场文书
安全演讲稿开场白
2014/08/25 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
创先争优个人总结
2015/03/04 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
python运行脚本文件的三种方法实例
2022/06/25 Python