评价此页

SWALR#

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

将学习率退火到固定的值。

此学习率调度器用于随机权重平均 (SWA) 方法(参见 torch.optim.swa_utils.AveragedModel)。

参数
  • optimizer (torch.optim.Optimizer) – 包装的优化器

  • swa_lrs (float or list) – 所有参数组的或每个组单独的学习率值。

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

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

  • 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]#

获取学习率。

load_state_dict(state_dict)[source]#

加载调度器的状态。

参数

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

state_dict()[source]#

dict 的形式返回调度器的状态。

它包含 self.__dict__ 中除优化器之外的所有变量的条目。

返回类型

dict[str, Any]

step(epoch=None)[source]#

执行一步。