深度学习训练之学习率LR系统总结
文章目录1、StepLR2、MultiStepLR3、ExponentialLR4、CosineAnnealingLR5、CyclicLR6、ReduceLROnPlateau1、StepLR先上API:# optimizer:优化器# step_size:每隔多少epoch改变学习率lr# gamma=0.1:训练到这一部分epoch×上一epoch的lrtorch.optim.lr_sched
·
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;
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,
注: 大多数都采用此方法;
3、ExponentialLR
API:
torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1, verbose=False)
此方法容易造成过早的停止训练,学习率更新方式为: 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,
5、CyclicLR
6、ReduceLROnPlateau
更多推荐
所有评论(0)