快捷鍵

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 (floatlist) – 所有參數群組的整體學習率數值,或者每個群組分別的學習率數值。

  • 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()[來源]

傳回目前排程器計算的最後一個學習率。

回傳類型

List[float]

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)[來源]

執行一個步驟。

文件

存取 PyTorch 的全面開發人員文件

檢視文件

教學課程

取得針對初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得您問題的解答

檢視資源