pytorchモデルのパラメーターがリーフではなく、計算グラフにあるのはなぜですか?
ニューラルネットモデルのパラメーターを更新/変更し、更新されたニューラルネットのフォワードパスを計算グラフに含めようとしています(変更/更新の数に関係なく)。 私はこのアイデアを試しましたが、行うたびに、pytorchは更新されたテンソル(モデル内)をリーフに設定します。これにより、グラデーションを受け取りたいネットワークへのグラデーションのフローが強制終了されます。葉のノードは計算グラフの一部ではないため、グラデーションのフローが停止します(真に葉ではないため)。 私は複数のことを試しましたが、何も機能しないようです。グラデーションが必要なネットワークのグラデーションを出力する自己完結型のダミーコードを作成しました。 import torch import torch.nn as nn import copy from collections import OrderedDict # img = torch.randn([8,3,32,32]) # targets = torch.LongTensor([1, 2, 0, 6, 2, 9, 4, 9]) # img = torch.randn([1,3,32,32]) # targets = torch.LongTensor([1]) x = torch.randn(1) target = 12.0*x**2 criterion = nn.CrossEntropyLoss() #loss_net = nn.Sequential(OrderedDict([('conv0',nn.Conv2d(in_channels=3,out_channels=10,kernel_size=32))])) …