完美解決keras保存好的model不能成功加載問(wèn)題
前兩天調(diào)用之前用keras(tensorflow做后端)訓(xùn)練好model,卻意外發(fā)現(xiàn)報(bào)錯(cuò)了?。≈皬膩?lái)沒(méi)有過(guò)報(bào)錯(cuò)?。″e(cuò)誤內(nèi)容粘貼如下:
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)
意思好像就是文件結(jié)構(gòu)找不到了,然后我百度了,他說(shuō)是訓(xùn)練好的文件數(shù)據(jù)丟失了,重新訓(xùn)練就好了。
但是,我重新訓(xùn)練了好幾次,確保訓(xùn)練的model文件沒(méi)有錯(cuò)誤,在調(diào)用時(shí)依然報(bào)了同樣的錯(cuò)誤。
一氣之下,我卸載了h5py,然后重新安裝h5py的最新版本,問(wèn)題竟然神奇的解決了,哈哈哈哈!幸運(yùn)!
補(bǔ)充知識(shí):Keras使用 Lambda后訓(xùn)練出的模型加載后,預(yù)測(cè)結(jié)果為隨機(jī)
問(wèn)題
Keras 使用 Lambda后訓(xùn)練出的模型加載后,預(yù)測(cè)結(jié)果為隨機(jī)accuracy
解決方案
原因出在,我構(gòu)建模型的時(shí)候需要用到TensorFlow的一些函數(shù),所以用了Lambda,有把一些需要訓(xùn)練weights的層也寫到了里面。
重點(diǎn)就在這,模型權(quán)重保存的時(shí)候,沒(méi)保存Lambda里面的。
用notepad打開(kāi)權(quán)重文件,發(fā)現(xiàn)里面保存的Tensor不包含這些,所以每一次重新加載模型測(cè)試的時(shí)候都會(huì)重新初始化一些層的權(quán)重,導(dǎo)致結(jié)果是隨機(jī)的。
結(jié)論
不要在Lambda層里面加入任何需要訓(xùn)練權(quán)重的層
模型保存出錯(cuò)的時(shí)候,看一下模型文件里面保存的Tensor是否一致
以上這篇完美解決keras保存好的model不能成功加載問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3列表內(nèi)置方法大全及示例代碼小結(jié)
這篇文章主要介紹了Python3列表內(nèi)置方法大全及示例代碼小結(jié),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Django 過(guò)濾器匯總及自定義過(guò)濾器使用詳解
這篇文章主要介紹了Django 過(guò)濾器匯總及自定義過(guò)濾器使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python(TensorFlow框架)實(shí)現(xiàn)手寫數(shù)字識(shí)別系統(tǒng)的方法
這篇文章主要介紹了Python(TensorFlow框架)實(shí)現(xiàn)手寫數(shù)字識(shí)別系統(tǒng)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python實(shí)現(xiàn)數(shù)通設(shè)備tftp備份配置文件示例
這篇文章主要介紹了python實(shí)現(xiàn)數(shù)通設(shè)備tftp備份配置文件示例,需要的朋友可以參考下2014-04-04
Pandas告警UserWarning:pandas?only?supports?SQLAlchemy?conn
這篇文章主要給大家介紹了關(guān)于Pandas告警UserWarning:pandas only supports SQLAlchemy connectable的處理方式,文中還分享了pandas還有哪些userwarning,對(duì)大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02

