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

TensorFlow多分类图像分类器出现<list index out of range>错误求助

报错原因分析

  • 第一个问题:验证集数据生成器没有传入标签
    你调用validation_datagen.flow()的时候只传入了测试图片testing_images_extra_dim,没有传入对应的标签testing_labels,模型在验证阶段计算损失时找不到真实标签值,触发了索引越界错误。
  • 第二个问题:validation_steps参数计算逻辑错误
    你写的len(testing_images/10)是错误写法:testing_images/10会得到一个所有元素都除以10的numpy数组,len()取的还是测试集的总样本数,正确的写法应该是总样本数除以批次大小,即len(testing_images)//10。

修复方案

把model.fit_generator部分的代码替换为以下内容即可:

history = model.fit_generator(
    training_datagen.flow(training_images_extra_dim, training_labels, batch_size = 10), 
    epochs=2, 
    steps_per_epoch=20, 
    # 验证生成器同时传入图片和对应标签
    validation_data = validation_datagen.flow(testing_images_extra_dim, testing_labels, batch_size=10), 
    verbose = 1, 
    # 正确计算验证步数:总样本数/批次大小,取整数
    validation_steps=len(testing_images)//10
)

补充说明

如果你的TensorFlow版本高于2.1,更推荐使用model.fit()替代已经弃用的model.fit_generator(),fit()方法原生支持数据生成器输入,用法和参数完全兼容,不需要修改其他逻辑。

内容的提问来源于stack exchange,提问作者Sandy Lee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:45:04