在caffe中,可以选择如下设置卷积的学习倍数
layer {
name: "conv1a"
type: "Convolution"
bottom: "data"
top: "conv1a"
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 64
kernel_size: 3
pad: 1
stride: 1
bias_filler {
type: "constant"
value: 0
}
}
}
在pytorch中,如何仅使用SGD设置卷积层的lr_mult?谢谢
答案 0 :(得分:0)
PyTorch中没有直接等效项。学习率不是模型的一部分,而是优化方案的一部分。 There is a help page中为每个参数设置不同的学习率,因此您可以采用这种方式。如果您想让所有参数的学习率达到1.
,除了conv1a
应该具有0.5
的学习率之外,您可以这样做:
fast_parameters = []
slow_parameters = []
for name, parameter in model.named_parameters():
if 'conv1a' in name:
slow_parameters.append(parameter)
else:
fast_parameters.append(parameter)
optimizer = optim.SGD([
{'params': slow_parameters, 'lr': 0.5},
{'params': fast_parameters}
], lr=1.)
我使用named_parameters()
方法。