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

CSH

我正在使用pytorch来训练部分网络。例如,我有一个模型结构

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

如果我只想训练Layer3,我可以使用

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

但是,这次我只想训练Layer1。我该如何实现?谢谢。

东洋

detach不会真正“冻结”您的图层。
如果您不想训练图层,则应该使用requires_grad=False

例如:

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

然后要冻结,请使用进行相同的操作requires_grad=True

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章