Keras model.load_weights() error: ValueError:

我使用来自 Gadgetron 的 Docker来实现一个带有 Keras 的 Gadget。Theano 作为后端。这是Dockerfile,结果pip list是


Package              Version    

-------------------- -----------

absl-py              0.7.1      

astor                0.8.0      

certifi              2019.6.16  

chardet              3.0.4      

cycler               0.10.0     

Cython               0.26.1     

decorator            4.4.0      

dicom                0.9.9.post1

dicom-numpy          0.1.6      

engineering-notation 0.6.0      

gast                 0.2.2      

google-pasta         0.1.7      

grpcio               1.21.1     

h5py                 2.9.0      

idna                 2.8        

imageio              2.5.0      

ismrmrd              1.6.1      


加载权重时出现错误:


File "/opt/data/CNNArt/Gadgetron/gadget_cnnart.py", line 29, in process

    model.load_weights('/opt/data/weight.h5')


  File "/usr/local/lib/python3.6/dist-packages/keras/engine/network.py", line 1157, in load_weights

    with h5py.File(filepath, mode='r') as f:


  File "/usr/local/lib/python3.6/dist-packages/h5py/_hl/files.py", line 391, in __init__

    fapl = make_fapl(driver, libver, rdcc_nslots, rdcc_nbytes, rdcc_w0, **kwds)


  File "/usr/local/lib/python3.6/dist-packages/h5py/_hl/files.py", line 108, in make_fapl

    plist.set_libver_bounds(low, high)


  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/h5p.pyx", line 1140, in h5py.h5p.PropFAID.set_libver_bounds


ValueError: Invalid high library version bound (invalid high library version bound)

但是,在 Docker 中,当我在终端中打开 python时,我可以加载模型及其参数。


>>> from keras.models import model_from_json

>>> with open('/opt/data/model.json', 'r') as f:

...     model = model_from_json(f.read())

...

>>> model.load_weights('/opt/data/weight.h5')

>>> 

我尝试使用 重新安装h5py,pip但它不起作用。


问题是它直接在 python 交互终端中工作,但在 Gadget 脚本中不起作用。


慕娘9325324
浏览 194回答 3
3回答

扬帆大鱼

卸载 h5py 并使用以下命令重新安装:pip install --no-binary=h5py h5py

BIG阳

我在使用tensorflow的时候也遇到了这个问题。正如@so2liu 所述,请尝试:pip install --no-binary=h5py h5py但是,请确保选择与 tensorflow 或其他一些库兼容的版本,例如:pip install --no-binary=h5py h5py==2.10.0最后,请记住检查您的环境,因为您可能在 venv / conda / docker 中运行您的代码,但是您在错误的环境中安装了 h5py

HUH函数

我有类似的问题,我通过安装解决了sudo apt-get install python3-h5py并确保 numpy 版本与 h5py 兼容
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python