YOLOv3学习率

YOLOv3官方版本的学习率配置信息在模型配置文件 *.cfg file 中:

  • learning_rate: 标准学习率
  • burn_in: 学习率从 0 上升到 learning_rate 的 batch 数目
  • max_batches: 需要进行训练的 batch 数目
  • policy: 学习率调度的策略
  • steps: 在何处进行学习率衰减
  • scales: 学习率进行衰减的倍数

YOLOv3学习率_第1张图片

这个YOLO关于学习率调度的的代码设置在 train.py 中,设置标准学习率和最终的学习率分别为参数hyp['lr0'] 和 hyp['lrf'],其中最终的学习率 final LR = hyp['lr0'] * (10 ** hyp['lrf'])。例如,标准学习率 hyp['lr0']  = 0.001, hyp['lrf'] = -2,因此 final LR = 0.00001.下面这张图显示了Pytorch中的两个常用的学习率调度方法。其中YOLO原版采用的是  MultiStepLR scheduler。我们可以根据自己需要对学习率进行调整。

YOLOv3学习率_第2张图片

YOLO会对前面1000个batch进行学习率warm up:

 # SGD burn-in 
 if epoch == 0 and i <= n_burnin: 
     lr = hyp['lr0'] * (i / n_burnin) ** 4 
     for x in optimizer.param_groups: 
         x['lr'] = lr 

YOLOv3学习率_第3张图片

不过代码里默认是注释掉了,如果使用的话需要打开以下

YOLOv3学习率_第4张图片

 

你可能感兴趣的:(YOLOv3学习)