import torch
import torch.nn as nn
from torch.autograd import Variable
m = Variable(torch.randn(3, 10, 20))
nn.Conv2d(in_channels=3, out_channels=8, kernel_size=3)(m)
Traceback (most recent call last):
File "too.py", line 6, in <module>
nn.Conv2d(in_channels=3, out_channels=8, kernel_size=3)(m)
File "/home/soumith/code/pytorch/torch/nn/modules/module.py", line 206, in __call__
result = self.forward(*input, **kwargs)
File "/home/soumith/code/pytorch/torch/nn/modules/conv.py", line 237, in forward
self.padding, self.dilation, self.groups)
File "/home/soumith/code/pytorch/torch/nn/functional.py", line 43, in conv2d
return f(input, weight, bias)
RuntimeError: expected 3D tensor
形状(batch_size、height、weight)のデータを使用して同様の問題が発生し、位置1に1次元が追加され、問題が並べ替えられました。 PS。 in_channels = 1を使用しています。
torch/csrc/autograd/functions/convolution.cpp
のview4d
の呼び出しは、重みテンソルも3Dであると想定しているため、エラーが発生します。
ただし、(3D)入力は形状(3、10、1、20)の4Dテンソルに変換されます。ウェイトテンソルのスクイーズを解除しようとしても、サイズは一致しません。
おそらく、Pythonレベル( nn.functional.conv2d
)でチェックを追加して、 input.dim() != 4
の場合にレイズする必要がありますか?
@soumithこれに満足したら、PRを送ることができます
はい! これにとても満足しています。 PRを送る:)
最も参考になるコメント
はい! これにとても満足しています。 PRを送る:)