快捷方式

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)。

引數
  • 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][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 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲取問題解答

檢視資源