轮数选择

训练轮数(Epochs) = 完整遍历整个训练集的次数,是控制模型学习深度的核心超参数。

一、定义与计算

1个Epoch = 所有训练样本都参与一次梯度更新

Python
复制
# 示例:8000张图纸,batch_size=4
num_images = 8000
batch_size = 4

# 1个epoch包含的iterations
iters_per_epoch = num_images // batch_size = 2000

# 若训练12个epoch
total_iters = 12 × 2000 = 24,000次梯度更新
 
关键公式:

总迭代次数=Epochs×Batch Size训练集大小

Faster R-CNN中的训练轮数选择

标准配置(COCO数据集)

yaml
复制
# Detectron2默认
MAX_ITER: 90000      # 对应12 epoch (117k images, batch=16)
STEPS: (60000, 80000) # 在第8/10.7 epoch时降lr
 

图纸场景配置(hbwR-O数据集)

yaml
复制
# 推荐配置
MAX_ITER: 10000      # 12 epoch (8k images, batch=4)
STEPS: (6000, 8000)  # 在第7.2/9.6 epoch时降lr

# 经验法则:小数据集训练轮数应≥10 epoch
# 防止欠拟合
 

三、训练轮数的决策树

复制
数据集是否 > 10万张?
├─ 是 → 训练 12-24 epoch (防止欠拟合)
│      └─ 如COCO: 12 epoch
└─ 否 → 训练 10-15 epoch (防止过拟合)
       ├─ 图纸8k张: 12 epoch
       └─ 若数据 < 1k → 早停 (Early Stopping)
posted @ 2025-12-06 19:58  yinghualeihenmei  阅读(1)  评论(0)    收藏  举报