深度之眼PyTorch训练营

一、PyTorch的六种学习率调整策略

class_LRScheduler

主要属性:

  • optimizer:关联的优化器
  • last_epoch:记录epoch数
  • base_lrs:记录初始学习率

主要方法:

  • step():更新下一个epoch的学习率
  • get_lr():虚函数,计算下一个epoch的学习率

学习率调整

1、StepLR

功能:等间隔调整学习率

主要参数:

  • step_size:调整间隔数
  • gamma:调整系数

调整方式:lr = lr * gamma

2、MultiStepLR

功能:按给定间隔调整学习率

主要参数:

milestones:设定调整时刻数

gamma:调整系数

3、ExponetialLR

功能:按指数衰减调整学习率

主要参数:

gamma:指数的底

调整方式:lr = lr * gamma ** epoch

4、CosineAnnealingLR

功能:余弦周期调整学习率

主要参数:

T_max:下降周期

eta_min:学习率下降

调整方式:

 5、ReduceLRonPlateau

功能:监控指标,当指标不再变化则调整

主要参数:

mode:min/max 两种模式

factor:调整系数

patience:“耐心”,接受几次不变化

cooldown:“冷却时间”,停止监控一段时间

verbose:是否打印日志

min_lr:学习率下限

eps:学习率衰减最小值

6、LambdaLR

功能:自定义调整策略

主要参数:

lr_lambda:function or list

小结:

1、有序调整:Step、MultiStep、Exponential 和 CosineAnnealing

2、自适应调整:ReduceLROnPleateau

3、自定义调整:Lambda

学习率初始化:

1、设置较小数:0.01、0.001、0.0001

2、搜索最大学习率:

猜你喜欢

转载自www.cnblogs.com/cola-1998/p/11899493.html