快捷鍵

CosineAnnealingLR

class torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0.0, last_epoch=-1, verbose='deprecated')[source][source]

使用餘弦退火排程來設定每個參數群組的學習率。

ηmax\eta_{max} 被設定為初始學習率,而 TcurT_{cur} 是自 SGDR 上次重新啟動以來的 epoch 數。

ηt=ηmin+12(ηmaxηmin)(1+cos(TcurTmaxπ)),Tcur(2k+1)Tmax;ηt+1=ηt+12(ηmaxηmin)(1cos(1Tmaxπ)),Tcur=(2k+1)Tmax.\begin{aligned} \eta_t & = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})\left(1 + \cos\left(\frac{T_{cur}}{T_{max}}\pi\right)\right), & T_{cur} \neq (2k+1)T_{max}; \\ \eta_{t+1} & = \eta_{t} + \frac{1}{2}(\eta_{max} - \eta_{min}) \left(1 - \cos\left(\frac{1}{T_{max}}\pi\right)\right), & T_{cur} = (2k+1)T_{max}. \end{aligned}

當 last_epoch=-1 時,將初始學習率設定為 lr。 請注意,由於排程是遞迴定義的,因此學習率可以同時被此排程器之外的其他運算符修改。 如果學習率僅由此排程器設定,則每個步驟的學習率變為:

ηt=ηmin+12(ηmaxηmin)(1+cos(TcurTmaxπ))\eta_t = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})\left(1 + \cos\left(\frac{T_{cur}}{T_{max}}\pi\right)\right)

它已在SGDR: Stochastic Gradient Descent with Warm Restarts中被提出。請注意,這僅實現了SGDR的餘弦退火部分,而不是重新啟動。

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

  • T_max (int) – 最大迭代次數。

  • eta_min (float) – 最小學習率。預設值:0。

  • last_epoch (int) – 最後一個 epoch 的索引。預設值:-1。

  • verbose (bool | str) –

    如果 True,則為每次更新向標準輸出列印訊息。預設值: False

    Deprecated since version 2.2: verbose 已棄用。請使用 get_last_lr() 訪問學習率。

get_last_lr()[source]

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

傳回類型

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__ 中每個變數的項目,但 optimizer 除外。

step(epoch=None)[原始碼]

執行一個步驟。

文件

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

查看文件

教學

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

查看教學

資源

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

查看資源