[英]Tensorflow keras - How to avoid erroring out when loading h5 model if model is not present
[英]OSerror: loading a h5 saved model in tensorflow keras after updating the environment in anaconda on windows with python 3.7
在更新我的环境或使用最新环境后加载使用 kerastensorflow 创建的 h5 模型时,我收到来自 h5py 的 OSerror(没有任何其他文本)。
我在旧版本中使用 keras 和 tf 以及 keras-tf v1.15 训练了一些模型,并使用model.save('filename.h5')
代码保存了它们。 之后,我能够加载它们并在keras.load_model
之前进一步使用它们,现在tensorflow.keras.models.load_model
没有任何问题,但收到一些警告,指出我的 tf 版本未编译为使用 avx2 指令等。 安装的版本是使用 pip install tensorflow-cpu 的 tensorflow 1.15,它似乎运行良好,我安装的环境是从 Windows 上的 anaconda 二进制文件安装的 Anaconda3-2020.02-Windows-x86_64。
在尝试将包更改为 tensorflow-mkl 后,由于环境冲突(即使是全新安装的 anaconda 也显示),需要更新我的环境,出现了 h5py 引发的 OSerror。
通过克隆环境,将 anaconda 二进制文件中的默认环境包与 tf-cpu 一起使用似乎可以正常工作。 当使用conda update --all
更新环境时,它会使用 tfc-cpu 或 tf-mkl 引发错误。
两种情况下h5py的版本都是:'2.10.0',错误如下:
Traceback (most recent call last):
File "C:\Users\Oscar\bwSyncAndShare\OPT_PV22WP_intern\pv2wp_control\SIM\Sim_future.py", line 88, in <module>
model = load_model(pathfile_model)
File "C:\Users\Oscar\anaconda3\envs\optimizer2\lib\site-packages\tensorflow_core\python\keras\saving\save.py", line 142, in load_model
isinstance(filepath, h5py.File) or h5py.is_hdf5(filepath))):
File "C:\Users\Oscar\anaconda3\envs\optimizer2\lib\site-packages\h5py\_hl\base.py", line 44, in is_hdf5
return h5f.is_hdf5(filename_encode(fname))
File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py\h5f.pyx", line 156, in h5py.h5f.is_hdf5
OSError
有没有人遇到过这个问题?
conda create -n name python==3.7.x anaconda
然后安装 tf,不起作用。我认为然后其他一些图书馆正在制造问题,但我无法弄清楚是什么问题。
我使用hd5而不是h5作为扩展名,并解决了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.