Keras图像分类代码Jupyter运行报错Colab正常问题求助
问题原因
该报错核心为本地运行环境的Pillow(Python图像处理库)版本过高,与旧版keras-preprocessing工具包的接口逻辑不兼容。Google Colab的默认运行环境匹配了二者的兼容版本,因此相同代码可正常执行。
解决方案
你可以任选以下任意一种方式修复:
- 降低Pillow版本到兼容的9.5.0版本,执行命令:
pip install pillow==9.5.0
安装完成后重启Jupyter内核重新运行代码即可。 - 升级keras-preprocessing到最新兼容版本,执行命令:
pip install --upgrade keras-preprocessing
最新版keras-preprocessing已经适配了高版本Pillow的接口逻辑。 - 如果你使用的是TensorFlow内置的Keras框架,直接将代码中
ImageDataGenerator的引用替换为TensorFlow自带的实现:
将from keras.preprocessing.image import ImageDataGenerator修改为from tensorflow.keras.preprocessing.image import ImageDataGenerator,高版本TensorFlow自带的预处理工具已经修复了该兼容性问题,无需调整依赖版本。
验证说明
修改完成后重启Jupyter Notebook内核,重新执行代码即可正常获取训练批次数据。如果仍有报错,可先检查数据集路径下是否存在损坏的非图片文件,排除数据本身的问题。
内容的提问来源于stack exchange,提问作者Aditya Ranade
相关产品推荐
相关产品推荐

