Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Pytorch中应用分层学习率?_Python_Neural Network_Deep Learning_Pytorch - Fatal编程技术网

Python 如何在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

我知道可以冻结网络中的单个层,例如只训练预先训练模型的最后一层。我要寻找的是一种将一定的学习率应用于不同层次的方法

因此,例如,第一层的学习率非常低,为0.000001,然后逐渐增加以下各层的学习率。最后一层的学习率为0.01左右

这在pytorch中可能吗?你知道如何存档吗?

以下是解决方案:

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)。
诀窍在于,当您创建模型时,您应该为图层命名,或者可以对其进行分组

太好了,正是我想要的-谢谢!