modelの引数の考え方がイメージできません。
自作のデータを使ってpytorchを使ってCNNを行おうとしています。
入力データは以下の通りです。
torch.Size([32, 7, 100, 11])
batch=32
奥行=7
画像サイズH=100
画像サイズW=11
この場合、cov2dの引数はどのように決めていけば良いのでしょうか?
自分のコード
python
1class Net(nn.Module): 2 def __init__(self): 3 super().__init__() 4 self.conv1 = nn.Conv2d(in_channels=7, out_channels=14, kernel_size=3,stride=1) 5 self.bn1 = nn.BatchNorm2d(14) 6 self.conv2 = nn.Conv2d(in_channels=14, out_channels=28, kernel_size=3,stride=1) 7 self.bn2 = nn.BatchNorm2d(28) 8 self.conv3 = nn.Conv2d(28, 56, 1) 9 self.bn3 = nn.BatchNorm2d(56) 10 self.conv4 = nn.Conv2d(56, 28, 2) 11 self.bn4 = nn.BatchNorm2d(28) 12 self.maxpool = nn.MaxPool2d(2) 13 self.avgpool1 = nn.AvgPool2d([5,1]) 14 self.avgpool2 = nn.AvgPool2d([4,2]) 15 self.fc1 = nn.Linear(16 * 5 * 6, 120) 16 self.fc2 = nn.Linear(120,84) 17 self.fc3 = nn.Linear(84,10) 18
入力のチャンネルが7なので、最初のconv2dにはin_channels=7とし、out_channelsはネットで見本にしたコードが入力の2倍の数値にしていたのでそのまま使いました、、。公式見てもいまいちイメージが浮かびません。
考え方など教えていただけるとありがたいです。
あなたの回答
tips
プレビュー