导入ResNet50时报错“No module named keras.applications.resnet50”求助
解决方案
切换到TensorFlow集成的Keras(推荐)
独立Keras已停止维护,官方现在推荐使用TensorFlow内置的tf.keras。执行以下步骤:- 卸载现有独立Keras包:
pip uninstall keras -y - 安装TensorFlow(会自动包含兼容的Keras):
pip install tensorflow - 修改导入代码,替换为
tf.keras路径:import numpy as np import pickle from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input from tensorflow.keras.preprocessing import image from tensorflow.keras.models import Model, load_model from tensorflow.keras.preprocessing.sequence import pad_sequences
- 卸载现有独立Keras包:
检查环境依赖与版本兼容
- 确认当前Python环境的包状态,避免版本冲突:
pip list | grep -E "tensorflow|keras" - 如果使用虚拟环境/conda环境,确保激活目标环境后再执行安装/卸载操作,比如conda环境:
conda activate your_env_name pip uninstall keras -y conda install tensorflow
- 确认当前Python环境的包状态,避免版本冲突:
强制使用特定兼容版本(仅当必须用独立Keras时)
若坚持用独立Keras,需安装与TensorFlow严格匹配的版本,比如Keras 2.3.1对应TensorFlow 2.2.0:pip install keras==2.3.1 tensorflow==2.2.0安装完成后保持原导入语句即可。
排查低级错误
确认导入语句中resnet50为全小写,拼写错误也会导致模块找不到问题。
内容的提问来源于stack exchange,提问作者Naveen
相关产品推荐
相关产品推荐

