【发布时间】:2020-01-06 04:28:37
【问题描述】:
这是我的代码
optimizer = optim.SGD(net.parameters(), lr=0.1)
scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.5)
for i in range(15):
lr = scheduler.get_lr()[0]
lr1 = optimizer.param_groups[0]["lr"]
print(i, lr, lr1)
scheduler.step()
这是结果
0 0.1 0.1
1 0.1 0.1
2 0.1 0.1
3 0.1 0.1
4 0.1 0.1
5 0.025 0.05
6 0.05 0.05
7 0.05 0.05
8 0.05 0.05
9 0.05 0.05
10 0.0125 0.025
11 0.025 0.025
12 0.025 0.025
13 0.025 0.025
14 0.025 0.025
我们可以看到,当scheduler.step()被应用时,学习率先下降了0.25倍,然后又反弹回了0.5倍。是scheduler.get_lr()lr的问题还是scheduler.step()的问题
关于环境
- python=3.6.9
- pytorch=1.1.0
另外,使用pytorch=0.4.1的时候找不到这个问题。
【问题讨论】: