Pytorch当中的6种学习率调整策略

Pytorch当中的6种学习率调整策略

1.StepLR

scheduler_lr = optim.lr_scheduler.StepLR(optimizer, step_size=50, gamma=0.1)

功能:等间隔调整学习率
主要参数
step_size:调整间隔数
gamma:调整系数
调整方式:lr = lr * gamma

在这里插入图片描述
2.MultiStepLR

milestones = [50, 125, 175]
scheduler_lr = optim.lr_scheduler.MultiStepLR(optimizer, milestones=milestones, gamma=0.1)

功能:按给定间隔调整学习率
主要参数
milestones:设定调整时刻数
gamma:调整系数
调整方式:lr = lr * gamma
在这里插入图片描述

3.ExponentialLR

gamma = 0.95
scheduler_lr = optim.lr_scheduler.ExponentialLR(optimizer, gamma=gamma)

功能:按指数衰减调整学习率
主要参数:
gamma:指数的底
调整方式:lr = lr * gamma**epoch
在这里插入图片描述
4.ConsineAnnealingLR

t_max = 50
scheduler_lr = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=t_max, eta_min=0.)

功能:余弦周期调整学习率
主要参数:
T_max:下降周期
eta_min:学习率下限
调整方式:
在这里插入图片描述
在这里插入图片描述
5.ReduceLRonPlateau

scheduler_lr = optim.lr_scheduler.ReduceLROnPlateau(optimizer, factor=factor, mode=mode, patience=patience,cooldown=cooldown, min_lr=min_lr, verbose=verbose)

功能:监控指标,当指标不再变化时则调整
主要参数:
mode:min/max两种模式
factor:调整系数
patience:“耐心,接受几次不变化”
cooldown:冷却时间,停止监控一段时间
verbose:是否打印日志
min_lr:学习率下限
eps:学习率衰减最小值

6.LambdaLR

scheduler = torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda=[lambda1, lambda2])

功能:自定义调整策略
主要参数:
lr_lambda:function or list

总结

1.有序调整:StepLR、MultiStepLR、ExponentialLR和CosineAnnealingLR
2.自适应调整:ReduceLROnPleateau
3.自定义调整:LambdaLR

猜你喜欢

转载自blog.csdn.net/weixin_43183872/article/details/108061092