解決したいこと
PyTorchで全結合層のパラメーターの形を見てみたところ、ベクトルと行列のサイズがあっていないと思いました。
例えば、最後の全結合層では入力ベクトルのサイズは(1,512)ですが、全結合層のサイズが(10,512)なので計算ができません。全結合層のサイズが(512,10)だと都合が良いと思うのですが、内部の処理がどうなっているのか教えていただきたいです。
python
1Model structure: NeuralNetwork( 2 (flatten): Flatten(start_dim=1, end_dim=-1) 3 (linear_relu_stack): Sequential( 4 (0): Linear(in_features=784, out_features=512, bias=True) 5 (1): ReLU() 6 (2): Linear(in_features=512, out_features=512, bias=True) 7 (3): ReLU() 8 (4): Linear(in_features=512, out_features=10, bias=True) 9 (5): ReLU() 10 ) 11) 12 13 14Layer: linear_relu_stack.0.weight | Size: torch.Size([512, 784]) | Values : tensor([[-0.0346, 0.0327, 0.0167, ..., 0.0209, -0.0141, 0.0356], 15 [ 0.0102, 0.0071, 0.0073, ..., -0.0241, 0.0041, 0.0159]], 16 device='cuda:0', grad_fn=<SliceBackward>) 17 18Layer: linear_relu_stack.0.bias | Size: torch.Size([512]) | Values : tensor([0.0353, 0.0058], device='cuda:0', grad_fn=<SliceBackward>) 19 20Layer: linear_relu_stack.2.weight | Size: torch.Size([512, 512]) | Values : tensor([[ 0.0287, 0.0135, 0.0429, ..., -0.0268, 0.0441, -0.0108], 21 [-0.0040, 0.0116, 0.0063, ..., 0.0297, 0.0293, -0.0179]], 22 device='cuda:0', grad_fn=<SliceBackward>) 23 24Layer: linear_relu_stack.2.bias | Size: torch.Size([512]) | Values : tensor([-0.0209, -0.0367], device='cuda:0', grad_fn=<SliceBackward>) 25 26Layer: linear_relu_stack.4.weight | Size: torch.Size([10, 512]) | Values : tensor([[ 0.0299, 0.0182, -0.0258, ..., 0.0223, -0.0016, 0.0400], 27 [-0.0118, 0.0364, -0.0230, ..., -0.0393, -0.0152, 0.0244]], 28 device='cuda:0', grad_fn=<SliceBackward>) 29 30Layer: linear_relu_stack.4.bias | Size: torch.Size([10]) | Values : tensor([-0.0238, -0.0124], device='cuda:0', grad_fn=<SliceBackward>)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/25 16:43