我知道可以冻结网络中的各个层,例如仅训练预训练模型的最后一层。
但是,我想知道有什么方法可以将某些学习率应用于不同的层次。例如,在pytorch中它将是:
optimizer = torch.optim.Adam([
{'params': paras['conv1'], 'lr': learning_rate / 10},
{'params': paras['middle'], 'lr': learning_rate / 3},
{'params': paras['fc'], 'lr': learning_rate }
], lr=learning_rate)
胶子和割炬的界面几乎相同。知道我如何在胶子中做到这一点吗?
最佳答案
您可以通过修改lr_mult
来调整每一层的学习率:
for key, value in model.collect_params().items():
print value.lr_mult
关于machine-learning - 如何在mxnet.gluon中定义每层学习率?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53467556/