繁体   English   中英

OSerror:使用python 3.7在windows上更新anaconda中的环境后,在tensorflow keras中加载h5保存的模型

[英]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

有没有人遇到过这个问题?

  • 我尝试使用更新的环境训练模型并保存它,加载时出现相同的错误。
  • 使用基本环境更新到 tf-cpu v2.3.1 并加载也有效。
  • 创建一个新的环境,使用conda create -n name python==3.7.x anaconda然后安装 tf,不起作用。

我认为然后其他一些图书馆正在制造问题,但我无法弄清楚是什么问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM