我正在使用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)
但是有没有我不需要逐层设置参数的情况呢?
发布于 2018-07-31 04:01:24
可以对图层进行编组。如果要对所有线性图层进行分组,最好的方法是使用modules
param_grp = []
for idx, m in enumerate(model.modules()):
if isinstance(m, nn.Linear):
param_grp.append(m.weight)
https://stackoverflow.com/questions/43818246
复制相似问题