小白学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
将每个参数组的学习率设置为初始
l
r
lr
lr乘以给定函数。当last_epoch
=-1时,将初始lr设置为已有lr。
源码
[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()