PyTorch:如何在任何给定时刻更改优化器的学习率(无LR计划)

时间:2018-01-18 14:55:53

标签: python optimization neural-network deep-learning pytorch

PyTorch是否有可能在动态培训中改变优化器的学习率(我不想事先定义学习率表)?

所以,让我们说我有一个优化器:

optim = torch.optim.SGD(model.parameters(), lr=0.01)

现在由于我在训练期间进行的一些测试,我意识到我的学习率太高,所以我想把它改成0.001。似乎不是一个方法optim.set_lr(0.001)但是有一些方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:33)

因此学习率存储在optim.param_groups[i]['lr']中。 optim.param_groups是可以具有不同学习率的不同权重组的列表。因此,只需做:

for g in optim.param_groups:
    g['lr'] = 0.001

会做到这一点。

答案 1 :(得分:1)

您可以直接通过以下方式来代替@patapouf_ai的循环:

optim.param_groups[0]['lr'] = 0.001

欢呼