當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch ReduceLROnPlateau用法及代碼示例


本文簡要介紹python語言中 torch.optim.lr_scheduler.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=False)

參數

  • optimizer(Optimizer) -包裝優化器。

  • mode(str) -minmax 之一。 min模式下,當監控數量停止減少時,lr會減少;在max模式下,當監控的數量停止增加時,它將減少。默認值:‘min’。

  • factor(float) -學習率降低的因子。 new_lr = lr * 因子。默認值:0.1。

  • patience(int) -沒有改善的時期數,之後學習率將降低。例如,如果 patience = 2 ,那麽我們將忽略前 2 個沒有改善的 epoch,並且隻有在第 3 個 epoch 之後損失仍然沒有改善時才會降低 LR。默認值:10。

  • threshold(float) -衡量新最佳值的閾值,僅關注重大變化。默認值:1e-4。

  • threshold_mode(str) -relabs 之一。在 rel 模式下,dynamic_threshold = ‘max’ 模式下的最佳 * ( 1 + 閾值 ) 或 min 模式下的最佳 * ( 1 - 閾值 )。在abs 模式下,dynamic_threshold = max 模式中的最佳 + 閾值或 min 模式中的最佳 - 閾值。默認值:‘rel’。

  • cooldown(int) -lr 減少後恢複正常操作之前要等待的紀元數。默認值:0。

  • min_lr(float或者list) -標量或標量列表。所有參數組或每個組的學習率的下限。默認值:0。

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

  • verbose(bool) -如果 True ,每次更新都會向標準輸出打印一條消息。默認值:False

當指標停止改進時降低學習率。一旦學習停滯,模型通常會受益於將學習率降低 2-10 倍。該調度程序讀取一個指標數量,如果在 ‘patience’ 的 epoch 數量上沒有看到任何改進,則學習率會降低。

示例

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

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.optim.lr_scheduler.ReduceLROnPlateau。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。