pytorch 学习之 学习率调整策略

学习率调整

一、 所有学习率调整函数的基类

class _LRSccheduler(object):
    def __init__(self, optimizer, last_epoch=-1):

主要属性:

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

主要方法:

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

二、调整策略

  1. 有序调整:Step、MultiStep、Exponential 和 CosineAnnealing
  2. 自适应调整:ReduceLROnPleateau
  3. 自定义调整:Lambda
1. StepLR

等间隔的调整学习率

lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1)

主要参数:

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

调整方式: l r = l r ∗ g a m m a lr=lr*gamma lr=lrgamma

2. MultiStepLR

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

lr_scheduler.MultiStepLR(optimizer, milestones, gamma=0.1, last_epoch=-1)

主要参数:

  • milestones:设定调整时刻数
  • gamma:调整系数

调整方式: l r = l r ∗ g a m m a lr = lr * gamma lr=lrgamma

3. ExponentialLR

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

lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1)

主要参数:

  • gamma:指数的底

调整方式: l r = l r ∗ g a m m a ∗ ∗ e p o c h lr = lr * gamma ** epoch lr=lrgammaepoch

4. CosineAnnealingLR

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

lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1)

主要参数:

  • T_max:下降周期
  • eta_min:学习率下限

调整方式:KaTeX parse error: Got function '\min' with no arguments as subscript at position 13: \eta_t=\eta_\̲m̲i̲n̲+\frac{1}{2}(\e…

5. ReduceLRonPlateau

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

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)

主要参数:

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

功能:自定义调整策略

lr_scheduler.LambdaLR(optimizer, lr_lambda, last_epoch=-1)

主要参数:

  • lr_lambda:function or list

三、学习率初始化

学习率初始化:

  1. 设置较小数:0.01、0.001、0.0001
  2. 搜索最大学习率: 《Cyclical Learning Rates for Training Neural Networks》,初始化学习率不能大于最大学习率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万俟淋曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值