导入tensorflow_hub时提示No module named 'keras'报错如何解决?
报错问题解决方法
前置检查
- 确认Jupyter Notebook使用的内核和你安装依赖的Anaconda环境为同一个:在Notebook中执行
import sys; print(sys.executable),查看输出的Python路径是否对应目标Anaconda环境目录,若不匹配则在顶部菜单栏选择「Kernel」→「Change Kernel」切换到对应环境即可。 - 确认版本依赖关系:TensorFlow 2.x版本已内置Keras模块(命名空间为
tf.keras),如果单独安装了独立Keras包,版本和TensorFlow、tensorflow_hub不匹配时会触发找不到Keras的报错。
具体修复步骤
- 卸载单独安装的独立Keras包,避免和TensorFlow内置模块冲突,在目标Anaconda环境终端执行:
pip uninstall keras -y - 升级TensorFlow和tensorflow_hub到匹配的稳定版本,无需额外安装Keras:
pip install --upgrade tensorflow tensorflow_hub
如果使用conda管理依赖,可替换为:conda install tensorflow tensorflow-hub - 统一代码中的Keras导入写法,全部使用TensorFlow内置的Keras命名空间:
原有独立Keras的导入写法from keras import *统一替换为from tensorflow.keras import *
ResNet导入示例:
import tensorflow as tf import tensorflow_hub as hub # 加载ResNet预训练模型 resnet_layer = hub.KerasLayer("https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/5", trainable=False)
效果验证
在Notebook中执行以下代码,正常输出版本号即说明修复完成:
import tensorflow as tf import tensorflow_hub as hub print(hub.__version__) print(tf.keras.__version__)
内容的提问来源于stack exchange,提问作者Митя Бережной
相关产品推荐
相关产品推荐

