

Python初学者です．Pytorchを利用したCNNモデルで中間層の値を抽出したいです．Sequential()で作成しているのですが，全結合層の値を抽出する為に，各レイヤーにアクセスしたいと考えています．見易さを考慮して，CNNにおける畳み込み層と，全結合層を分割しているのですが，この状態でアクセスするには，どのようにプログラムすればよいのでしょうか．

print()

[code]

    #ネットワークの定義
    class net(nn.Module):
        def __init__(self):
            super(net,self).__init__()
            #畳み込み層
            self.conv_layers = nn.Sequential(#元々の入力12x12
                nn.Conv2d(in_channels = 1, out_channels = 8, kernel_size = 2, stride=1, padding=0),#filter16枚 
                nn.ReLU(),
                nn.Conv2d(in_channels =8, out_channels = 16, kernel_size = 2, stride=1, padding=0),
                nn.ReLU(),
            )
            #全結合層
            self.dence = nn.Sequential(
                nn.Linear(16 * 10 * 10, 8),
                nn.ReLU(),
                nn.Linear(8, 16),
                nn.ReLU(),
                nn.Linear(16, 32),
                nn.ReLU(),
                nn.Linear(32, 2),
            )
             
        #順伝播
        def forward(self,out):
             
            out = self.conv_layers(out)
            #Flatten
            out = out.view(out.size(0), -1)
            #全結合層
            out = self.dence(out)
            return out
         
        #畳み込み層の出力サイズのチェック
        def check_cnn_size(self, size_check):
            out = self.conv_layers(size_check)
             
            return out
    
[/code]


CC BY-SA 4.0
2023-09-19T01:02:31.530
96257
2023-09-19T01:02:31.530
59680
question
python pytorch
Pytorchを利用したNNモデルで中間層の値を抽出したいと考えています．