pytorch基础(十六)----------学习率调整策略

学习率(lr),是用来空值更新的步伐,防止梯度爆炸。以打高尔夫球为例,在我们打第一杆的时候很难一杆进洞,所有需要一个比较大的力量去击球,当球离洞比较近时,就需要调整力的大小,轻轻地击球才能进洞。

学习率调整策略

代码展示:

import torch

# 选择优化器
optimizer = optim.SGD(net.parameters(), lr=LR)
# 设置学习率调整策略
scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.1)       # step_size表示每是个epoch调整一次,公式为lr = lr * gamma

# 使用,需要放入epoch迭代循环中
scheduler.step()

pytorch中的学习率调整方法

1、torch.optim.lr_scheduler.StepLR()

功能:等间隔调整学习率
主要参数:
step_size:调整间隔数
gamma:调整系数
调整公式: l r = l r ∗ g a m m a lr = lr * gamma lr=lrgamma

2、torch.optim.lr_scheduler.MultiStepLR()

功能:按照给定间隔调整学习率
主要参数:
milestones:设定调整时刻数,可以是一个列表
gamma:调整系数
调整公式: l r = l r ∗ g a m m a lr = lr * gamma lr=lrgamma

3、torch.optim.lr_scheduler.ExponentialLR()

功能:按指数衰减调整学习率,每次迭代都会进行调整
主要参数:
gamma:调整系数
调整公式: l r = l r ∗ ( g a m m a ∗ ∗ e p o c h ) lr = lr *( gamma ** epoch) lr=lrgammaepoch

4、torch.optim.lr_scheduler.CosineAnnealingLR()

功能:余弦周期调整学习率
主要参数:
T_max:下降周期,等于周期的一半
eta_min:学习率下限,下降周期的下限
调整公式: η t = η m i n + 1 2 ( η m a x − η m i n ) ( 1 + c o s ( T c u r T m a x π ) ) η_t=η_{min}+\frac{1}{2}(η_{max}-η_{min})(1+cos(\frac{T_{cur}}{T{max}}π)) ηt=ηmin+21(ηmaxηmin)(1+cos(TmaxTcurπ))

5、torch.optim.lr_scheduler.ReduceLRonPlateau()

功能:监控指标,当指标不再发生变化则调整
主要参数:
mode:min/max两种模式,min模式为所监控的指标如果不下降就调整,min通常观察loss;max为指标不上升就调整,max通常观察准确率
factor:调整系数
patience:接受几次不发生变化
cooldown:停止监控一段时间
verbose:是否打印日志
min_lr:学习率下限
eps:学习率衰减最小值

6、torch.optim.lr_scheduler.LambdaLR()

功能:自定义调整策略
主要参数:
lr_lambda:函数或者是列表

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值