Python 如何在Pytorch中应用分层学习率?
我知道可以冻结网络中的单个层,例如只训练预先训练模型的最后一层。我要寻找的是一种将一定的学习率应用于不同层次的方法 因此,例如,第一层的学习率非常低,为0.000001,然后逐渐增加以下各层的学习率。最后一层的学习率为0.01左右 这在pytorch中可能吗?你知道如何存档吗?以下是解决方案:Python 如何在Pytorch中应用分层学习率?,python,neural-network,deep-learning,pytorch,Python,Neural Network,Deep Learning,Pytorch,我知道可以冻结网络中的单个层,例如只训练预先训练模型的最后一层。我要寻找的是一种将一定的学习率应用于不同层次的方法 因此,例如,第一层的学习率非常低,为0.000001,然后逐渐增加以下各层的学习率。最后一层的学习率为0.01左右 这在pytorch中可能吗?你知道如何存档吗?以下是解决方案: from torch.optim import Adam model = Net() optim = Adam( [ {"params": model.fc.parameter
from torch.optim import Adam
model = Net()
optim = Adam(
[
{"params": model.fc.parameters(), "lr": 1e-3},
{"params": model.agroupoflayer.parameters()},
{"params": model.lastlayer.parameters(), "lr": 4e-2},
],
lr=5e-4,
)
优化器中未指定的其他参数将不会优化。因此,您应该说明所有层或组(或要优化的层)。如果未指定学习率,则将采用全局学习率(5e-4)。
诀窍在于,当您创建模型时,您应该为图层命名,或者可以对其进行分组 太好了,正是我想要的-谢谢!