ZH ·
🌏 English PyTorch 学习率调整器 (LR Scheduler) 详解
在深度学习模型训练中,学习率(Learning Rate)的选择至关重要。虽然对于简单的训练任务,使用固定的学习率或许可行,但在完整的训练流程中,引入学习率调整器(LR Scheduler)是提升模型收敛效果和性能的必要手段。
LR Scheduler 通常与优化器(Optimizer)配合使用。它通过跟踪优化器中的参数,在执行更新后根据预设规则自动调整学习率。
以下是 PyTorch 中几种常见的 LR Scheduler:
以 StepLR 为例,它的作用是每经过 step_size 个 epoch,将学习率更新为 lr = lr * gamma。以下是典型的使用示例:
import torch.optim.lr_scheduler as lr_scheduler
optimizer = SGD(model, 0.1)
scheduler = lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.1)
for epoch in range(20):
for input, target in dataset:
optimizer.zero_grad()
output = model(input)
loss = loss_fn(output, target)
loss.backward()
optimizer.step()
scheduler.step()