完美解决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图像处理之镜像实现方法
May 30 Python
Python导入oracle数据的方法
Jul 10 Python
总结python实现父类调用两种方法的不同
Jan 15 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
对python中执行DOS命令的3种方法总结
May 12 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
python中子类与父类的关系基础知识点
Feb 02 Python
python使用pymysql模块操作MySQL
Jun 16 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/12/06 PHP
php 无法载入mysql扩展
2010/03/12 PHP
php disk_free_space 返回目录可用空间
2010/05/10 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
实例讲解python函数式编程
2014/06/09 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
python 堆和优先队列的使用详解
2019/03/05 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
django中的图片验证码功能
2019/09/18 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
HTML5中的新元素介绍
2008/10/17 HTML / CSS
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
机关作风整顿个人整改措施2014
2014/09/17 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
爱晚亭导游词
2015/02/09 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis