YOLOv3学习率

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

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

这个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。我们可以根据自己需要对学习率进行调整。

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 

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

发布了16 篇原创文章 · 获赞 37 · 访问量 8468

猜你喜欢

转载自blog.csdn.net/songwsx/article/details/102656935