完美解决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 相关文章推荐
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
tensorflow中tf.slice和tf.gather切片函数的使用
Jan 19 Python
tensorflow 模型权重导出实例
Jan 24 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
如何在django中实现分页功能
Apr 22 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
Dec 01 Python
Flask处理Web表单的实现方法
Jan 31 Python
python自动化测试通过日志3分钟定位bug
Nov 20 Python
Django框架之路由用法
Jun 10 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设计模式中的工厂模式
2008/06/12 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
PHP新建类问题分析及解决思路
2015/11/19 PHP
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
python计算文本文件行数的方法
2015/07/06 Python
python 计算文件的md5值实例
2017/01/13 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
django的csrf实现过程详解
2019/07/26 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
在线服装零售商:SheIn
2016/07/22 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
复古服装:RetroStage
2019/05/10 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
毕业生求职推荐信
2013/11/04 职场文书
安全员岗位职责
2013/11/11 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android