SWALR#
- class torch.optim.swa_utils.SWALR(optimizer, swa_lr, anneal_epochs=10, anneal_strategy='cos', last_epoch=-1)[原始碼]#
將每個引數組的學習率退火到一個固定值。
此學習率排程器旨在與隨機權重平均 (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()返回的物件。