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)。
- 參數
可以將
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()
- load_state_dict(state_dict)[來源]¶
載入排程器的狀態。
- 參數
state_dict (dict) – 排程器狀態。應該是從呼叫
state_dict()
傳回的物件。