我知道可以冻结网络中的各个层,例如仅训练预训练模型的最后一层。
但是,我想知道有什么方法可以将某些学习率应用于不同的层次。例如,在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/

10-12 18:01