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

TensorFlow2.5猫狗分类任务执行cnn.fit报__array__参数错误求助

错误根因排查

该报错与CUDA版本无关,属于numpy 1.21.0 与 tensorflow 2.5.0 依赖的图像处理工具链版本不兼容问题:
tensorflow 2.5.0 正式发布时适配的numpy最高版本为1.19.x,1.21.0版本numpy调整了__array__方法的传参规则,旧版本keras_preprocessing调用np.asarray()将Pillow图像转为数组时,传参逻辑不匹配高版本numpy的要求,最终触发参数数量错误。

可行解决方案

优先选择第一种方案,改动最小兼容性最高:

  • 方案1:降级numpy到适配版本
    执行命令:
    pip install numpy==1.19.5
    安装完成后重启代码运行内核,重新执行训练代码即可正常运行。
  • 方案2:升级图像处理依赖包适配高版本numpy
    不想降级numpy的情况下,升级keras_preprocessing和Pillow到兼容版本即可,执行命令:
    pip install --upgrade keras_preprocessing pillow==9.1.0
    注意不要使用9.2及以上版本的Pillow,否则会和tensorflow 2.5.0产生新的兼容性问题。
  • 方案3:临时修改数据生成器配置(无需修改依赖版本)
    在你的ImageDataGenerator生成训练/测试集的代码中,新增dtype='float32'参数,强制指定数据类型避免numpy传参冲突,示例如下:
train_datagen = ImageDataGenerator(rescale=1./255)
training_set = train_datagen.flow_from_directory(
    'your_train_data_path',
    target_size=(64, 64),
    batch_size=32,
    class_mode='binary',
    dtype='float32' # 新增该行配置
)
# 测试集生成代码也同步添加dtype参数

内容的提问来源于stack exchange,提问作者Krishna Sahu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 21:33:02