关于 trainer 用于finetune net

打算finetune 一个net,我在搭net的时候把它分了两个HybridSequential,features跟classifier。
训练的时候希望features部分也就是卷积层的学习率设低一点(0.001),classifier也就是全连接层的学习率高一点(0.1)。

能否做两个trainer:
trainer1=gluon.Trainer(features.collect_params(), ‘sgd’, {‘learning_rate’: 0.001, ‘momentum’: 0.9, ‘wd’:wd})
trainer2=gluon.Trainer(classifier.collect_params(), ‘sgd’, {‘learning_rate’: 0.1, ‘momentum’: 0.9, ‘wd’:wd})

在train的时候:

for data, label in train_data:
with autograd.record():
features = features(data.as_in_context(ctx))
output = classifier(features)
loss = softmax_cross_entropy(output,label)
loss.backward()
trainer1.step(batch_size)
trainer2.step(batch_size)

不知道上面这样实现可否

或者说有什么其他的实现方法?

可以设置param.lr_mult = 0.01*lr