You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1使用ImageDataGenerator已装SciPy仍提示缺失的报错问题

问题根因

该报错是M1架构Mac上旧版本TensorFlow(2.5.0)绑定的keras-preprocessing库和arm64版本scipy的适配问题:keras-preprocessing的仿射变换模块初始化时无法正确识别已安装的scipy包,误判scipy未安装抛出错误。

解决方案按优先级排序:

  1. 调整导入顺序
    在导入ImageDataGenerator之前先强制导入scipy,让keras-preprocessing可以识别到已加载的scipy:
import scipy
from keras_preprocessing.image import ImageDataGenerator

如果还是报错,执行下一步。

  1. 降级scipy到兼容版本
    1.7.x版本的scipy和TensorFlow 2.5的keras-preprocessing适配性最好,在当前虚拟环境执行安装命令:
pip install scipy==1.7.3
  1. 替换数据增强实现绕开依赖
    如果不想改动依赖版本,可以放弃使用ImageDataGenerator的图像变换功能,改用TensorFlow自带的预处理层实现数据增强,完全不需要scipy依赖:
data_augmentation = tf.keras.Sequential([
  tf.keras.layers.Rescaling(1./255),
  tf.keras.layers.RandomRotation(0.2), # 对应原参数rotation_range=40
  tf.keras.layers.RandomTranslation(0.2, 0.2), # 对应原参数width/height_shift_range=0.2
  tf.keras.layers.RandomFlip("horizontal"), # 对应原参数horizontal_flip=True
])
# 后续用tf.keras.utils.image_dataset_from_directory加载数据集,和数据增强层拼接pipeline即可
  1. 升级TensorFlow版本
    升级到TensorFlow 2.9及以上版本,自带的tf.keras.preprocessing.image.ImageDataGenerator已经修复了M1架构下的scipy识别问题,无需单独安装keras-preprocessing包。

内容的提问来源于stack exchange,提问作者Federico Piras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:27:05