10

我正在使用 resnet50 对 pytorch 进行微调,并希望将最后一个全连接层的学习率设置为 10^-3,而其他层的学习率设置为 10^-6。我知道我可以按照其文档中的方法进行操作:

optim.SGD([{'params': model.base.parameters()},
           {'params': model.classifier.parameters(), 'lr': 1e-3}], 
          lr=1e-2, momentum=0.9)

但是无论如何我不需要逐层设置参数

4

1 回答 1

1

您可以对图层进行分组。如果要对所有线性图层进行分组,最好的方法是使用modules

param_grp = []

for idx, m in enumerate(model.modules()):
    if isinstance(m, nn.Linear):
        param_grp.append(m.weight)
于 2018-07-30T20:01:24.333 回答