質問内容
PyTorchにて以下条件のCNNを実装しております。Flatten
隠れニューロン(hidden-neurons)`の扱い方が不明瞭なため、上手く実装することが出来ない状況です。
実装フローは以下の通りです。
- Flattenにてイメージをベクターに変更 (Flatten the image to a vector for the input)
- fully-connected レイヤーには300の隠れニューロン
- ReLU活性化関数を利用
- Fully-connected linearレイヤーには10個のアウトプットを生成
現状のコードですと、初期inputのサイズがtorch.Size([100, 3, 32, 32])
でして、2回目のprintでtorch.Size([1024, 300])
、3回目でtorch.Size([1024, 10])
とサイズがどうしても調整できていない状況です。上記フロー実行の際に必要な点をご指摘いただければ幸いです。
python
1class MyNet(nn.Module): 2 def __init__(self): 3 super(MyNet, self).__init__() 4 self.relu = nn.ReLU() 5 self.fc1 = torch.nn.Linear(300, 10) 6 7 def forward(self, x): 8 x = x.view(-1, 300) 9 print(x.shape) 10 x = self.relu(self.fc1(x)) 11 print(x.shape) 12 13 return x