SWALR
- 类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()
- get_lr()[源代码]
-
获取学习率。
- 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()
来访问学习率。
- state_dict()
-
返回调度器的状态,形式为
dict
。它包含了 self.__dict__ 中每个非优化器变量的条目。
- step(epoch=None) 由于上述代码格式已经较为简洁,直接翻译可能难以形成自然语言描述。但根据上下文和意图,可以尝试如下表述: 进行一个训练步骤,参数`epoch`可选设置为`None`。
-
执行一个步骤。