完美解决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获取标准北京时间的方法
Mar 24 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
Python实现合并excel表格的方法分析
Apr 13 Python
Python3.5 Pandas模块之DataFrame用法实例分析
Apr 23 Python
对django 模型 unique together的示例讲解
Aug 06 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
python requests.get带header
May 05 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
python 用struct模块解决黏包问题
Nov 07 Python
pycharm实现猜数游戏
Dec 07 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
论坛头像随机变换代码
2006/10/09 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
整理Python中的赋值运算符
2015/05/13 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
Python交互环境下实现输入代码
2018/06/22 Python
python3中zip()函数使用详解
2018/06/29 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
Tensorflow 实现释放内存
2020/02/03 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
酒后驾车标语
2014/06/30 职场文书
新闻学专业求职信
2014/07/28 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
民主评议党员个人总结
2015/02/13 职场文书
合同补充协议书
2016/03/24 职场文书
DIY胆机必读:各国电子管评价
2022/04/06 无线电