Pytorch: Conv2dに3D入力を与えると、悪いエラーメッセージが表示されます

作成日 2017年05月21日  ·  3コメント  ·  ソース: pytorch/pytorch

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
medium priority (this tag is deprecated)

最も参考になるコメント

はい! これにとても満足しています。 PRを送る:)

全てのコメント3件

形状(batch_size、height、weight)のデータを使用して同様の問題が発生し、位置1に1次元が追加され、問題が並べ替えられました。 PS。 in_channels = 1を使用しています。

torch/csrc/autograd/functions/convolution.cppview4dの呼び出しは、重みテンソルも3Dであると想定しているため、エラーが発生します。

ただし、(3D)入力は形状(3、10、1、20)の4Dテンソルに変換されます。ウェイトテンソルのスクイーズを解除しようとしても、サイズは一致しません。

おそらく、Pythonレベル( nn.functional.conv2d )でチェックを追加して、 input.dim() != 4の場合にレイズする必要がありますか?

@soumithこれに満足したら、PRを送ることができます

はい! これにとても満足しています。 PRを送る:)

このページは役に立ちましたか?
0 / 5 - 0 評価