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()