深度学习训练之学习率LR系统总结

文章目录

      • 1、StepLR
      • 2、MultiStepLR
      • 3、ExponentialLR
      • 4、CosineAnnealingLR
      • 5、CyclicLR
      • 6、ReduceLROnPlateau

1、StepLR

先上API:

# optimizer:优化器
# step_size:每隔多少epoch改变学习率lr
# gamma=0.1:训练到这一部分epoch×上一epoch的lr
torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1,last_epoch=-1, verbose=False)

关于gamma=0.1,也就是说1-10个epoch,lr=0.1,则10-20的lr为0.1×0.1;
深度学习训练之学习率LR系统总结_第1张图片

2、MultiStepLR

torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones,gamma=0.1, last_epoch=-1, verbose=False)

只对StepLR的API里面的step_size进行改动,变为milestones,milestones可以设置为[10,40,60],即是指前10个epoch的lr为0.1,10-40的epoch为0.1×0.1,40-60的epoch的lr为0.1×0.1×0.1,
深度学习训练之学习率LR系统总结_第2张图片

注: 大多数都采用此方法;

3、ExponentialLR

API:

torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1, verbose=False)

深度学习训练之学习率LR系统总结_第3张图片
此方法容易造成过早的停止训练,学习率更新方式为: l r = l r × γ e p o c h lr=lr×\gamma^{epoch} lr=lr×γepoch

4、CosineAnnealingLR

API:

torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max,eta_min=0,last_epoch=-1,verbose=False)

学习率更新公式为:在这里插入图片描述
η m i n \eta_{min} ηmin为设定的最小学习率,
η m a x \eta_{max} ηmax为设置的最大学习率,
T m a x T_{max} Tmax为epoch周期的一半,
T c u r T_{cur} Tcur为当前的epoch,
深度学习训练之学习率LR系统总结_第4张图片

5、CyclicLR

6、ReduceLROnPlateau

你可能感兴趣的:(深度学习,图像算法,深度学习,图像处理)