『PyTorch』学习率调整策略

1. 学习率调整的基类

  • 类名: _LRScheduler

  • 主要属性:

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

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

2. PyTorch中的学习率策略

2.1 torch.optim.lr_scheduler.StepLR

  • 功能:等间隔调整学习率
  • 主要参数:
    • step_size: 调整间隔数,多少步之后开始调整学习率
    • gamma: 调整系数
  • 调整方式: l r = l r × g a m m a lr=lr \times gamma lr=lr×gamma

2.2 torch.optim.lr_scheduler.MultiStepLR

  • 功能:按给定时间间隔调整学习率
  • 主要参数:
    • milestones: 设定调整时刻数
    • gamma: 调整系数
  • 调整方式: l r = l r × g a m m a lr=lr \times gamma lr=lr×gamma

2.3 torch.optim.lr_scheduler.ExponentialLR

  • 功能: 按指数衰减调整学习率
  • 主要参数:
    • gamma: 指数的底
  • 调整方式: l r = l r × g a m m a e p o c h lr = lr \times gamma^{\large epoch} lr=lr×gammaepoch

2.4 torch.optim.lr_scheduler.ConsineAnnealingLR

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

  • 主要参数:

    • T_max: 下降周期
    • eta_min: 学习率下限
  • 调整方式:
    η t = η m i n + 1 2 ( η m a x − η m i n ) ( 1 + cos ⁡ ( T c u r T m a x π ) ) \displaystyle\large\eta_{t}=\eta_{min}+\frac{1}{2}\Big(\eta_{max}-\eta_{min}\Big)\Big(1+\cos(\frac{T_{cur}}{T_{max}}\pi)\Big) ηt=ηmin+21(ηmaxηmin)(1+cos(TmaxTcurπ))

2.5 torch.optim.lr_scheduler.ReduceLRonPlateau

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

2.6 torch.optim.lr_scheduler.LambdaLR

  • 功能:自定义调整策略
  • 主要参数:
    • lr_lambda: function or list,如果是list,其元素也得是function
  • 如何自定义:
    • 自定义的函数要返回一个系数,与之前的学习率相乘
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值