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

TensorFlow猫狗分类卷积神经网络调用model.fit训练报错问题求解

问题根源
  • 依赖环境不匹配:你运行代码使用的是CNNconda虚拟环境,你所谓的「已安装SciPy」大概率是安装到了base环境或其他Python环境中,当前运行代码的环境未正确安装适配版本的SciPy,导致keras_preprocessing模块加载依赖失败。
  • 路径写法不规范:代码中使用单反斜杠\定义Windows路径,反斜杠是Python默认转义符,后续运行也可能触发路径找不到的错误。
  • fit_generator弃用警告属于版本迭代提示,不是触发报错的核心原因,替换为model.fit即可消除该警告。
解决步骤
  1. 验证并修复SciPy安装问题
    打开Spyder当前项目对应的IPython控制台,依次执行以下操作:
  • 先验证当前环境是否真的安装了SciPy:运行代码import scipy; print(scipy.__version__)
    • 如果执行报错:说明当前CNN环境确实未安装SciPy,直接在控制台运行!pip install scipy,或者打开Anaconda Prompt激活CNN环境后执行conda install scipy完成安装。
    • 如果能正常输出版本号:说明keras_preprocessing和SciPy版本不兼容,运行!pip install --upgrade keras_preprocessing scipy升级两个依赖即可解决适配问题。
  1. 修正路径写法
    将代码中两个路径修改为原始字符串格式,避免转义问题:
train_dir = r"C:\Users\Nicholai\Desktop\dogs-vs-cats\small\train"
validation_dir = r"C:\Users\Nicholai\Desktop\dogs-vs-cats\small\val"
  1. 替换训练调用方法
    完全保留原有参数,将model.fit_generator替换为model.fit即可消除弃用警告:
history = model.fit(
    train_generator,
    steps_per_epoch = train_generator.n // im_per_batch,
    epochs=num_epochs,
    validation_data = validation_generator,
    validation_steps = validation_generator.n // im_per_batch)
  1. 统一导入逻辑
    将加载模型的导入语句修改为和前文具名导入一致的写法,避免不同包版本冲突:
from tensorflow.keras.models import load_model

内容的提问来源于stack exchange,提问作者Nicholai Mørch Rindarøy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:36:02