本文主要是介绍在pytorch
中如何使用learning rate decay
.
先上代码:
def adjust_learning_rate(optimizer, decay_rate=.9):
for param_group in optimizer.param_groups:
param_group['lr'] = param_group['lr'] * decay_rate
什么是param_groups
?
optimizer
通过param_group
来管理参数组.param_group
中保存了参数组及其对应的学习率,动量等等.所以我们可以通过更改param_group['lr']
的值来更改对应参数组的学习率.
# 有两个`param_group`即,len(optim.param_groups)==2
optim.SGD([
{'params': model.base.parameters()},
{'params': model.classifier.parameters(), 'lr': 1e-3}
], lr=1e-2, momentum=0.9)
#一个参数组
optim.SGD(model.parameters(), lr=1e-2, momentum=.9)