加载权重需要使用h5py。

16

我正在尝试运行一个Keras模型,希望使用预训练的VGGnet模型-

当我运行以下命令:

base_model = applications.VGG16(weights='imagenet', include_top=False, input_shape=(img_rows, img_cols, img_channel))

我遇到了以下错误:

  ``------------------------------------------------------------------
---------
ImportError                               Traceback (most recent call 
last)
<ipython-input-79-9b18deb3bc0f> in <module>()
  1 
----> 2 base_model = applications.VGG16(weights='imagenet', 
include_top=False, input_shape=(img_rows, img_cols, img_channel))

/usr/local/lib/python3.5/dist-packages/keras/applications/vgg16.py in 
VGG16(include_top, weights, input_tensor, input_shape, pooling, 
classes)
167                                     WEIGHTS_PATH_NO_TOP,
168                                     cache_subdir='models')
--> 169         model.load_weights(weights_path)
170         if K.backend() == 'theano':
171             layer_utils.convert_all_kernels_in_model(model)

/usr/local/lib/python3.5/dist-packages/keras/engine/topology.py in 
load_weights(self, filepath, by_name)
   2563         """
   2564         if h5py is None:
-> 2565             raise ImportError('`load_weights` requires h5py.')
   2566         f = h5py.File(filepath, mode='r')
   2567         if 'layer_names' not in f.attrs and 'model_weights' in f:

ImportError: `load_weights` requires h5py.``

我浏览了一些 Github 的问题页面,发现有一个相关的问题被提出,但没有给出解决方案。

任何建议?

4个回答

24
安装h5py:
pip install h5py

或者,如果使用conda:

conda install h5py

@Ryan 检查你的 Python 路径:echo $PYTHONPATH。它可能会防止加载。之后,你使用 conda 吗?如果是这样,请检查你是否在正确的环境中。 - tupui
如何检查我的Python路径? - Ryan
1
@Ryan就像我在终端里说的那样:echo $PYTHONPATH - tupui
@Ryan 好的,如果使用conda,它意味着它只会使用当前环境中加载的软件包。如果只导入h5py,它是否有效? - tupui
让我们 在聊天中继续这个讨论 - Ryan

7

从技术上讲,您需要依赖项,例如:

pip install cython
sudo apt-get install libhdf5-dev
pip install h5py

重新启动您的Jupyter笔记本。


这就是解决方法!sudo apt-get install libhdf5 对我有用 :) 谢谢!! - MLu

2
在以下情况中,当“pip install h5py”无效并且您看到类似于“……已满足”的内容时,在Python 3中使用“pip3 install h5py”将会有效。请注意不要删除任何HTML标记。

1

以下步骤解决了我的问题

conda uninstall h5py
pip install h5py 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接