初始学习率 0.002
初始学习率 0.002 是 Faster R-CNN 精细微调场景下的保守配置,比标准值 0.02 小10倍,适用于迁移学习冻结Backbone或Warmup预热阶段。
一、0.002 的使用场景
场景1:分层学习率中的Backbone
Python
# Backbone微调慢,Head训练快
optimizer = optim.SGD([
{'params': model.backbone.parameters(), 'lr': 0.002}, # 仅0.002
{'params': model.rpn.parameters(), 'lr': 0.02}, # 0.02
{'params': model.roi_heads.parameters(), 'lr': 0.02 * 1.2} # 0.024
], momentum=0.9)
原理:预训练Backbone(如ResNet)已具备通用特征,大lr会破坏其结构,导致训练崩溃。0.002是微调临界点,既学习新知识,又保留旧知识。
何时该用0.002?决策树
Backbone是否冻结?
├─ 是 → **lr_backbone = 0.002** (强制)
│ lr_head = 0.02
├─ 否 → 优化器是否为AdamW?
│ ├─ 是 → **BASE_LR = 0.002** (AdamW标配)
│ └─ 否 → 是否开Warmup?
│ ├─ 是 → **start_lr = 0.002** (预热起点)
│ └─ 否 → **BASE_LR = 0.02** (SGD标准)
浙公网安备 33010602011771号