pytorch(17)学习率调整

学习率调整

class _LRScheduler
主要属性

  • optimizer:关联的优化器
  • last_epoch:记录epoch数
  • bash_lrs:记录初始学习率
class _LRScheduler(object):
	def __init__(self, optimizer, last_epoch = -1)

主要方法:

  • step():更新下一个epoch的学习率
  • get_lr():虚函数,计算下一个epoch的学习率
class _LRScheduler(object):
	def __init__(self,optimizer,last_epoch=-1)
	
	def get_lr(self):
		raise NotImplementedError
  1. StepLR
    功能:等间隔调整学习率
    主要参数:
  • step_size:调整间隔数
  • gamma:调整系数
    调整方式:lr=lr*gamma
lr_scheduler.StepLR(optimizer,step_size,gamma=0.1,last_epoch=-1)
  1. MultiStepLR
    功能:按给定间隔调整学习率
    主要参数:
  • milestones:设定调整时刻数
  • gamma:调整系数
    调整方式:lr = lr*gamma
lr_scheduler.MultiStepLR(optimizer,milestones,gamma=0.1,last_epoch=-1)
  1. ExponentialLR
    功能:按指数衰减调整学习率
    主要参数:
  • gamma:指数的底
    调整方式:lr = lr*gamma**epoch
lr_scheduler.ExponentialLR(optimizer,gamma,last_epoch=-1)
  1. CosineAnnealingLR
    功能:余弦周期调整学习率
    主要参数:
  • T_max:下降周期
  • eta_min:学习率下限
\[{调整方式:}\eta_t = \eta_{min}+\frac{1}{2}(\eta_{max}-\eta_{min})(1+cos(\frac{T_{cur}}{T_{max}})\pi/) \]
  1. ReduceLRonPlateau
    功能:监控指标,当指标不再变化则调整
    主要参数:
  • mode:min/max 两种模式
  • factor:调整系数
  • patience:“耐心 ”,接受几次不变化
  • cooldown:“冷却时间”,停止监控一段时间
  • verbose:是否打印日志
  • min_lr:学习率下限
  • eps:学习率衰减最小值
lr_scheduler.ReduceLROnPlateau(optimizer, 
mode='min', factor=0.1, patience=10, 
verbose=False, threshold=0.0001, 
threshold_mode='rel', cooldown=0, min_lr=0, 
eps=1e-08)
  1. LambdaLR
    功能:自定义调整策略
    主要参数:
  • lr_lambda:function or list
lr_scheduler.LambdaLR(optimizer,lr_lambda, last_epoch=-1)

学习率调整小结

  1. 有序调整:Step,MultiStep,Exponetial,CosineAnnealing
  2. 自适应调整:ReduceLROnPleateau
  3. 自定义调整:Lambda

学习率初始化

  1. 设置较小数:0.01、0.001、0.0001
  2. 搜索最大学习率:《Cyclical Learning Rates for Training Neural Networks》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值