SWALR¶
- class torch.optim.swa_utils.SWALR(optimizer, swa_lr, anneal_epochs=10, anneal_strategy='cos', last_epoch=-1)[源代码]¶
将每个参数组中的学习率退火到固定值。
此学习率调度器旨在与随机权重平均 (SWA) 方法一起使用(参见 torch.optim.swa_utils.AveragedModel)。
- 参数
SWALR
调度器可以与其他调度器一起使用,以便在训练后期切换到恒定的学习率,如下面的示例所示。示例
>>> loader, optimizer, model = ... >>> lr_lambda = lambda epoch: 0.9 >>> scheduler = torch.optim.lr_scheduler.MultiplicativeLR(optimizer, >>> lr_lambda=lr_lambda) >>> swa_scheduler = torch.optim.swa_utils.SWALR(optimizer, >>> anneal_strategy="linear", anneal_epochs=20, swa_lr=0.05) >>> swa_start = 160 >>> for i in range(300): >>> for input, target in loader: >>> optimizer.zero_grad() >>> loss_fn(model(input), target).backward() >>> optimizer.step() >>> if i > swa_start: >>> swa_scheduler.step() >>> else: >>> scheduler.step()
- load_state_dict(state_dict)¶
加载调度器的状态。
- 参数
state_dict (dict) – 调度器状态。应为
state_dict()
调用返回的对象。
- print_lr(is_verbose, group, lr, epoch=None)¶
显示当前学习率。
自版本 2.4 起已弃用:
print_lr()
已弃用。请使用get_last_lr()
访问学习率。
- step(epoch=None)¶
执行一步。