使用 SGD 时,学习率不应在 epoch 期间更改,但确实如此。请帮助我理解为什么会发生这种情况以及如何防止这种 LR 改变?
import torch
params = [torch.nn.Parameter(torch.randn(1, 1))]
optimizer = torch.optim.SGD(params, lr=0.9)
scheduler = torch.optim.lr_scheduler.StepLR(optimizer, 1, gamma=0.9)
for epoch in range(5):
print(scheduler.get_lr())
scheduler.step()
输出是:
[0.9]
[0.7290000000000001]
[0.6561000000000001]
[0.5904900000000002]
[0.5314410000000002]
我的手电筒版本是 1.4.0