5d张量尺寸上的Conv3d错误

时间:2020-07-10 12:26:58

标签: python machine-learning pytorch

I具有张量形状([5、1、3、126、126]),它表示视频(5个帧,每个126x126 rgb)。 我需要将其转发到

self.resnet = nn.Sequential(
        nn.Conv3d(5,5,1), 
        nn.UpsamplingBilinear2d(size=None, scale_factor=0.5)  
    )

但是我明白了

RuntimeError: Given groups=1, weight of size [5, 5, 1, 1, 1], expected input[5, 1, 3, 126, 126] to have 5 channels, but got 1 channels instead

我认为我可能误解了conv3d的工作原理,但我并不能真正理解为什么预期的尺寸与当时我的5d张量的尺寸如此之大

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是张量的形状不正确。 Conv3d类期望batch_size首先出现,然后是通道数,然后是帧数,然后是高度和宽度。这就是为什么您得到错误。您应该将输入张量的形状更改为[5,3,1,126,126]您的conv3d参数也是错误的。第一个数字应该是conv3d应该获得的输入通道数,在您的情况下为3,因为它是一个rgb图像。第二个数字是不需要更改的输出通道数。

相关问题