Neural network 如何只训练神经网络的前端?

Neural network 如何只训练神经网络的前端?,neural-network,pytorch,Neural Network,Pytorch,我用Pytork训练网络的一部分。例如,我有一个模型结构 hidden1 = Layer1(x) hidden2 = Layer2(hidden1) out = Layer3(hidden2) 如果我只想训练第三层,我可以使用 hidden1 = Layer1(x) hidden2 = Layer2(hidden1).detach() out = Layer3(hidden2) 然而,这次我只想训练第1层。我怎样才能做到这一点?谢谢。分离不会真正“冻结”您的图层。 如果不想训练图层,则应使用

我用Pytork训练网络的一部分。例如,我有一个模型结构

hidden1 = Layer1(x)
hidden2 = Layer2(hidden1)
out = Layer3(hidden2)
如果我只想训练第三层,我可以使用

hidden1 = Layer1(x)
hidden2 = Layer2(hidden1).detach()
out = Layer3(hidden2)

然而,这次我只想训练第1层。我怎样才能做到这一点?谢谢。

分离不会真正“冻结”您的图层。
如果不想训练图层,则应使用
requires\u grad=False

例如:

hidden2.weight.requires_grad = False
hidden2.bias.requires_grad = False

然后,为了解冻,您对
requires\u grad=True

执行相同的操作,天哪,到目前为止我知道了错误的答案。非常感谢你!