完美解决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提取页面内url列表的方法
May 25 Python
Python下Fabric的简单部署方法
Jul 14 Python
详解使用Python处理文件目录的相关方法
Oct 16 Python
Python3实现购物车功能
Apr 18 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
Python利用递归实现文件的复制方法
Oct 27 Python
python实现海螺图片的方法示例
May 12 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
python中对_init_的理解及实例解析
Oct 11 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
解决Python安装cryptography报错问题
Sep 03 Python
Python内置数据类型中的集合详解
Mar 18 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水印
2007/03/16 PHP
基于header的一些常用指令详解
2013/06/06 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
Jquery 设置标题的自动翻转
2009/10/03 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
javascript中this关键字详解
2016/12/12 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
使用tensorflow实现AlexNet
2017/11/20 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
python Opencv将图片转为字符画
2021/02/19 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
Python实现转换图片背景颜色代码
2020/04/30 Python
比利时买床:Beter Bed
2017/12/06 全球购物
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
编程输出如下图形
2013/11/24 面试题
八年级物理教学反思
2014/01/19 职场文书
小区门卫管理制度
2014/01/29 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
会计电算化实训报告
2014/11/04 职场文书
材料采购员岗位职责
2015/04/03 职场文书