簡體   English   中英

如何僅訓練神經網絡的前部?

[英]How to train only front part of a neural network?

我正在使用 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做同樣的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM