快速鍵

ReduceLROnPlateau

class torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08, verbose='deprecated')[原始碼][原始碼]

當指標停止改善時,降低學習率。

當學習停滯時,模型通常受益於將學習率降低 2-10 倍。此排程器讀取指標數量,如果在 'patience' 次的 epoch 數中沒有看到改善,則會降低學習率。

參數
  • optimizer (Optimizer) – 包裝後的優化器。

  • mode (str) – minmax 其中之一。在 min 模式下,當監控的量停止減少時,lr 會降低;在 max 模式下,當監控的量停止增加時,lr 會降低。預設值:'min'。

  • factor (float) – 學習率降低的因子。new_lr = lr * factor。預設值:0.1。

  • patience (int) – 在沒有改善的情況下,允許的 epoch 數量,超過此數量後將降低學習率。 例如,考慮沒有 patience 的情況 (patience = 0)。 在第一個 epoch 中,建立一個基準,並且始終被認為是好的,因為沒有先前的基準。 在第二個 epoch 中,如果效能比基準差,我們就有所謂的不可容忍的 epoch。 由於不可容忍的 epoch 數量 (1) 大於 patience 等級 (0),因此在此 epoch 結束時會降低學習率。 從第三個 epoch 開始,如果效能比基準差,則在每個 epoch 結束時繼續降低學習率。 如果效能提高或保持不變,則不會調整學習率。 預設值:10。

  • threshold (float) – 用於衡量新最佳值的閾值,僅關注顯著變化。預設值:1e-4。

  • threshold_mode (str) – relabs 其中之一。在 rel 模式下,dynamic_threshold = best * ( 1 + threshold ) 在 'max' 模式下,或 best * ( 1 - threshold ) 在 min 模式下。在 abs 模式下,dynamic_threshold = best + threshold 在 max 模式下,或 best - threshold 在 min 模式下。預設值:'rel'。

  • cooldown (int) – 在降低 lr 後,恢復正常操作前要等待的 epoch 數量。預設值:0。

  • min_lr (float or list) – 一個純量或純量列表。分別是所有 param group 或每個 group 的學習率下限。預設值:0。

  • eps (float) – 應用於 lr 的最小衰減。 如果新舊 lr 之間的差異小於 eps,則忽略更新。預設值:1e-8。

  • verbose (bool | str) –

    如果 True,則為每次更新向 stdout 列印一則訊息。預設值:False

    自 2.2 版本已棄用: verbose 已棄用。請使用 get_last_lr() 存取學習率。

範例

>>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
>>> scheduler = ReduceLROnPlateau(optimizer, 'min')
>>> for epoch in range(10):
>>>     train(...)
>>>     val_loss = validate(...)
>>>     # Note that step should be called after validate()
>>>     scheduler.step(val_loss)
get_last_lr()[原始碼]

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

傳回型別

List[float]

get_lr()[原始碼]

使用排程器的鏈式形式計算學習率。

傳回型別

List[float]

load_state_dict(state_dict)[原始碼][原始碼]

載入排程器的狀態。

print_lr(is_verbose, group, lr, epoch=None)[原始碼]

顯示目前的學習率。

自 2.4 版起已棄用: print_lr() 已棄用。請使用 get_last_lr() 來存取學習率。

step(metrics, epoch=None)[原始碼][原始碼]

執行一個 step。

文件

存取 PyTorch 的完整開發者文件

檢視文件

教學

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

檢視教學

資源

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

檢視資源