余弦退火热重启¶
- class torch.optim.lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0, T_mult=1, eta_min=0, last_epoch=-1, verbose='deprecated')[源码]¶
使用余弦退火计划为每个参数组设置学习率,其中 设置为初始学习率, 是从上次重启以来的轮数, 是SGDR中两次热重启之间的轮数:
当 时,设置 。 当 重启后,设置 。
它是在 SGDR: 带热重启的随机梯度下降中提出的。
- Parameters
- get_last_lr()¶
返回当前调度器计算的最后一个学习率。
- load_state_dict(state_dict)¶
加载调度器的状态。
- Parameters
state_dict (字典) – 调度器状态。应该是从调用
state_dict()返回的对象。
- print_lr(is_verbose, group, lr, epoch=None)¶
显示当前的学习率。
- step(epoch=None)[源代码]¶
步骤可以在每次批量更新后调用
示例
>>> 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),而不是 scheduler(20)