CosineAnnealingWarmRestarts¶
- class torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0, T_mult=1, eta_min=0.0, last_epoch=-1)[原始碼][原始碼]¶
使用餘弦退火策略設定每個引數組的學習率。
是初始學習率, 是自上次重啟以來的 epoch 數,而 是 SGDR 中兩次熱重啟之間的 epoch 數。
當 時,設為 。當重啟後 時,設為 。
此策略在 SGDR: Stochastic Gradient Descent with Warm Restarts 中提出。
- 引數
- load_state_dict(state_dict)[原始碼]¶
載入排程器的狀態。
- 引數
state_dict (dict) – 排程器狀態。應為呼叫
state_dict()返回的物件。
- step(epoch=None)[原始碼][原始碼]¶
可以在每次批次更新後呼叫 Step。
示例
>>> scheduler = CosineAnnealingWarmRestarts(optimizer, T_0, T_mult) >>> iters = len(dataloader) >>> for epoch in range(20): >>> for i, sample in enumerate(dataloader): >>> inputs, labels = sample['inputs'], sample['labels'] >>> optimizer.zero_grad() >>> outputs = net(inputs) >>> loss = criterion(outputs, labels) >>> loss.backward() >>> optimizer.step() >>> scheduler.step(epoch + i / iters)
此函式可以交錯呼叫。
示例
>>> scheduler = CosineAnnealingWarmRestarts(optimizer, T_0, T_mult) >>> for epoch in range(20): >>> scheduler.step() >>> scheduler.step(26) >>> scheduler.step() # scheduler.step(27), instead of scheduler(20)