快捷键

SWALR

class torch.optim.swa_utils.SWALR(optimizer, swa_lr, anneal_epochs=10, anneal_strategy='cos', last_epoch=- 1)[source][source]

将每个参数组的学习率逐步调整到固定值。

此学习率调度器旨在与随机权重平均(SWA)方法(参见 torch.optim.swa_utils.AveragedModel)一起使用。

参数:
  • 优化器(torch.optim.Optimizer)- 包装的优化器

  • swa_lrs(浮点数或列表)- 所有参数组一起或分别针对每个组的学习率值。

  • annealing_epochs(整数)- 退火阶段的 epoch 数量(默认:10)

  • annealing_strategy (str) – “余弦”或“线性”;指定退火策略:“余弦”表示余弦退火,“线性”表示线性退火(默认:“余弦”)

  • last_epoch (int) – 最后一个 epoch 的索引(默认:-1)

可以使用 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_last_lr()[source]

返回当前调度器计算的最后学习率。

返回类型:

list[float]

get_lr()[source][source]

获取学习率。

load_state_dict(state_dict)[source]

加载调度器的状态。

参数:

state_dict (dict) – 调度器状态。应为调用 state_dict() 返回的对象。

state_dict()[source]

返回调度器的状态作为 dict

包含了 self.__dict__中每个非优化器的变量条目。

step(epoch=None)[source]

执行一步操作。


© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源