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

设置100轮训练的RetinaNet在Colab运行1轮后无警告停止如何解决

问题根因
  • 数据集样本量不足:日志明确抛出Your input ran out of data警告,你设置了每轮训练跑1000步,但实际训练集总样本数远小于1000(从训练进度看仅跑了11步数据就耗尽),数据生成器未配置自动重复逻辑,导致每轮训练提前中断。
  • 训练轮次参数缺失:你预期训练100轮,但执行的命令中未指定--epochs参数,keras-retinanet默认训练轮次为50轮,日志中Epoch 1/50可验证该问题。
  • 训练不充分导致检测失效:仅完成1个epoch的极少步数训练,模型未学习到有效特征,因此无法检测到目标;同时验证集仅4张样本,也无法准确验证模型效果。
修复方案
  • 调整样本与步长配置:优先扩充VOC格式训练数据集,保证训练集样本数≥单轮步数*batch_size(默认batch_size为1时至少需要1000张训练图);若暂时无法扩充数据集,可将--steps参数降低为与训练集样本数一致,比如训练集有200张图则设--steps 200。
  • 补充训练轮次参数:在训练命令中增加--epochs 100显式指定训练轮次。
  • 修正后的训练命令参考:
!keras_retinanet/bin/train.py --tensorboard-dir /content/TrainingOutput --snapshot-path /content/TrainingOutput/snapshots --random-transform --steps 200 --epochs 100 pascal /content/PlumsVOC
  • 可选适配小数据集:若要保留1000步/轮的配置且数据集规模较小,可修改keras-retinanet训练代码,为数据集生成器添加.repeat()逻辑,实现数据自动重复填充步长需求。

内容的提问来源于stack exchange,提问作者Nikhil R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:42:03