ImportError:无法从keras.preprocessing导入load_img报错如何解决
报错根因
cannot import name 'load_img' from 'keras.preprocessing' 报错由两个常见原因触发:
- Keras 2.10及以上版本中,
load_img、save_img、img_to_array三个图像处理接口已经从keras.preprocessing模块迁移到keras.utils模块,旧导入路径被正式移除 - 低版本Keras中,三个接口存放于
keras.preprocessing.image子模块,不能直接从keras.preprocessing根路径导入
修复方法
根据你使用的Keras版本选择对应导入方式即可,接口调用逻辑完全不变。
- 新版Keras(2.10+,含TensorFlow内置tf.keras)
使用如下导入语句替换原有错误导入:
# 原生Keras导入 from keras.utils import load_img, save_img, img_to_array # 如果使用TensorFlow附带的tf.keras,替换为如下导入 # from tensorflow.keras.utils import load_img, save_img, img_to_array import matplotlib.pyplot as plt # 原有业务代码不需要修改 plt.imshow(load_img('你的本地图片路径'))
- 旧版Keras(2.9及更早版本)
使用子模块路径导入:
from keras.preprocessing.image import load_img, save_img, img_to_array
- 依赖缺失修复
如果修改导入路径后仍提示找不到函数,是因为图像处理接口依赖Pillow库,执行如下命令安装依赖即可:
pip install pillow
内容的提问来源于stack exchange,提问作者Greta La Torre
相关产品推荐
相关产品推荐

