ネットワークの一部をトレーニングするために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]
コメントを追加