0

我正在使用 PyTorch,我想在几个时期后改变学习率。

但是,大多数文档中提供的代码是:

  optimizer = torch.optim.Adam([
        dict(params=model.parameters(), lr=learning_rate),
    ])
   #This line specifically
   optimizer.params_group[0]['lr'] = learning_rate

不起作用。

实际上 PyCharm 暗示了这一点:

“Adam”类的未解析属性引用“params_group”

结果,抛出的错误是:

AttributeError:“Adam”对象没有属性“params_group”

应该如何手动更改 PyTorch (1.6) 中的学习率?

4

2 回答 2

1

Param_groups 不是 pytorch 设计的可行解决方案,因此您应该实施pytorch.optim.lr_scheduler. 在此处的其他 stackoverflow 答案中阅读有关此内容的更多信息。

import torch.optim.lr_scheduler.StepLR #step learning rate
scheduler = StepLR(optimizer, step_size=5, gamma=0.1)
于 2020-08-21T21:59:36.583 回答
0

在上面的评论中,@Alizera Omidi 提供了答案。

里面有个错字,params_group其实是param_groups

于 2020-08-21T19:16:54.033 回答