> 文章列表 > 小白学Pytorch系列--Torch.optim API Scheduler(4)

小白学Pytorch系列--Torch.optim API Scheduler(4)

小白学Pytorch系列--Torch.optim API Scheduler(4)

小白学Pytorch系列–Torch.optim API Scheduler(4)

小白学Pytorch系列--Torch.optim API Scheduler(4)

方法 注释
lr_scheduler.LambdaLR 将每个参数组的学习率设置为初始lr乘以给定函数
lr_scheduler.MultiplicativeLR 将每个参数组的学习率乘以指定函数中给定的因子。
lr_scheduler.StepLR 每个步长周期衰减每个参数组的学习率。
lr_scheduler.MultiStepLR 一旦epoch的数量达到一定数量,将每个参数组的学习率衰减为gamma。
lr_scheduler.ConstantLR 将每个参数组的学习率衰减一个小的常数因子,直到epoch数达到预定义的里程碑:total。
lr_scheduler.LinearLR 通过线性改变小的乘法因子衰减每个参数组的学习率,直到epoch数达到预定义的里程碑:total。
lr_scheduler.ExponentialLR 每个epoch gamma 的每个参数组的学习率衰减。
lr_scheduler.PolynomialLR 衰减每个参数组的学习率使用多项式函数在给定的总体。
lr_scheduler.CosineAnnealingLR 使用余弦退火设置每个参数组的学习率,其中η _max设置为初始lr, T_cur是自SGDR中最后一次重启以来的epoch数
lr_scheduler.ChainedScheduler 学习速率调度器的链表。
lr_scheduler.SequentialLR 接收预计在优化过程和里程碑点期间顺序调用的调度器列表,该列表提供精确的间隔,以反映在给定时间段里应该调用哪个调度器。
lr_scheduler.ReduceLROnPlateau 当度量停止改进时,降低学习率
lr_scheduler.CyclicLR 根据CLR (cycle learning rate policy)策略设置各参数组的学习率。
lr_scheduler.OneCycleLR 按照1cycle学习率策略设置各参数组的学习率。
lr_scheduler.CosineAnnealingWarmRestarts 使用余弦退火设置每个参数组的学习率,其中η _max设置为初始lr, T_cur是自上次重启以来的epoch数,Ti是SGDR中两次热重启之间的epoch数

LambdaLR

将每个参数组的学习率设置为初始lrlrlr乘以给定函数。当last_epoch=-1时,将初始lr设置为已有lr。
小白学Pytorch系列--Torch.optim API Scheduler(4)
小白学Pytorch系列--Torch.optim API Scheduler(4)

源码

[base_lr * lmbda(self.last_epoch) for lmbda, base_lr in zip(self.lr_lambdas, self.base_lrs)]

示例

>>> # Assuming optimizer uses lr = 0.05 for all groups
>>> # lr = 0.025    if epoch == 0
>>> # lr = 0.03125  if epoch == 1
>>> # lr = 0.0375   if epoch == 2
>>> # lr = 0.04375  if epoch == 3
>>> # lr = 0.05    if epoch >= 4
>>> scheduler = LinearLR(self.opt, start_factor=0.5, total_iters=4)
>>> for epoch in range(100):
>>>     train(...)
>>>     validate(...)
>>>     scheduler.step()

MultiplicativeLR

StepLR

MultiStepLR

ConstantLR

LinearLR

ExponentialLR

PolynomialLR

CosineAnnealingLR

ChainedScheduler

SequentialLR

ReduceLROnPlateau

CyclicLR

OneCycleLR

CosineAnnealingWarmRestarts