teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2022/01/05 04:26

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
  model = Net()
66
66
 
67
- x = torch.rand(1, 3, 224, 244) # 224x224は入力サイズ、適宜変更してください
67
+ x = torch.rand(1, 3, 224, 224)
68
+ y = model(x)
68
- y = model(x) # torch.Size([1, 16, 53, 58])
69
+ print(y.shape) # torch.Size([1, 16, 53, 53])
69
- print(y.shape)
70
70
  ```

1

修正

2022/01/05 04:26

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -35,4 +35,36 @@
35
35
  ```
36
36
 
37
37
 
38
- [Pytorch - 自作のデータセットを扱う Dataset クラスを作る方法](https://pystyle.info/pytorch-how-to-create-custom-dataset-class/#outline__6)
38
+ [Pytorch - 自作のデータセットを扱う Dataset クラスを作る方法](https://pystyle.info/pytorch-how-to-create-custom-dataset-class/#outline__6)
39
+
40
+ ## 追記
41
+
42
+ > 必要なサイズがどのような数値が判断する方法などありましたらご教授頂けないでしょうか..
43
+
44
+ 全結合層の直前までのモデルを作成し、希望のテンソルを入れて出力の形状を確認すればよいです。
45
+
46
+ ```python
47
+ import torch
48
+ import torch.nn as nn
49
+ import torch.nn.functional as F
50
+
51
+
52
+ class Net(nn.Module):
53
+ def __init__(self):
54
+ super().__init__()
55
+ self.conv1 = nn.Conv2d(3, 6, 5)
56
+ self.pool = nn.MaxPool2d(2, 2)
57
+ self.conv2 = nn.Conv2d(6, 16, 5)
58
+
59
+ def forward(self, x):
60
+ x = self.pool(F.relu(self.conv1(x)))
61
+ x = self.pool(F.relu(self.conv2(x)))
62
+ return x
63
+
64
+
65
+ model = Net()
66
+
67
+ x = torch.rand(1, 3, 224, 244) # 224x224は入力サイズ、適宜変更してください
68
+ y = model(x) # torch.Size([1, 16, 53, 58])
69
+ print(y.shape)
70
+ ```