Ubuntu环境下RStudio中Keras调用ResNet50提示需h5py包的问题
解决RStudio中Keras调用预训练模型提示h5py缺失的问题
我之前也碰到过完全一样的情况——默认安装Keras的时候,install_keras()只会配置TensorFlow和Keras的核心依赖,而h5py这个处理HDF5格式文件的Python包属于可选依赖,刚好ResNet50这类预训练模型的权重文件就是HDF5格式,所以才会触发这个报错。给你两个实用的解决办法,选一个就行:
方法一:在R中通过reticulate直接安装(最便捷)
Keras是靠reticulate对接Python环境的,我们可以直接用它把h5py装到Keras默认的虚拟环境里:
- 先加载reticulate包:
library(reticulate) - 查看当前Keras使用的虚拟环境信息,确认环境名称(默认一般是
r-reticulate):
运行后会看到类似py_config()Python: ~/.virtualenvs/r-reticulate/bin/python的输出,其中r-reticulate就是目标环境名。 - 把h5py安装到这个环境:
py_install("h5py", envname = "r-reticulate")
方法二:通过终端手动操作虚拟环境
如果第一种方法遇到权限或网络问题,直接用终端操作更稳妥:
- 打开Ubuntu终端,激活Keras的默认虚拟环境:
source ~/.virtualenvs/r-reticulate/bin/activate - 用pip安装h5py:
pip install h5py - 安装完成后退出虚拟环境:
deactivate
完成后回到RStudio,重新运行你的ResNet50测试代码,比如:
library(keras) model <- application_resnet50(weights = "imagenet")
应该就能正常加载预训练模型了。
内容的提问来源于stack exchange,提问作者C. Boyer
相关产品推荐
相关产品推荐

