Pytorch Pytork:使用torch.nn.Conv2d卷积单通道图像

Pytorch Pytork:使用torch.nn.Conv2d卷积单通道图像,pytorch,conv-neural-network,convolution,tensor,Pytorch,Conv Neural Network,Convolution,Tensor,我尝试使用卷积层来卷积存储为numpy数组的灰度单层图像。代码如下: conv1 = torch.nn.Conv2d(in_channels = 1, out_channels = 1, kernel_size = 33) tensor1 = torch.from_numpy(img_gray) out_2d_np = conv1(tensor1) out_2d_np = np.asarray(out_2d_np) 我希望我的内核是33x33,输出层的数量应该等于输入层的数量,当图像的RGB

我尝试使用卷积层来卷积存储为numpy数组的灰度单层图像。代码如下:

conv1 = torch.nn.Conv2d(in_channels = 1, out_channels = 1, kernel_size = 33)
tensor1 = torch.from_numpy(img_gray)
out_2d_np = conv1(tensor1)

out_2d_np = np.asarray(out_2d_np)
我希望我的内核是33x33,输出层的数量应该等于输入层的数量,当图像的RGB通道相加时,输入层的数量是1。运行conv1tensor1时,会产生以下运行时错误:

运行时错误:四维权重1 1 33的预期四维输入,但得到的是大小为[246248]的二维输入

你知道我该怎么解决这个问题吗?我特别想使用torch.nn.Conv2d类/函数

提前感谢您的帮助

pytorch的Conv2d预计其2D输入实际上有4个维度:小批量维度、通道维度和两个空间维度。 您的输入张量只有两个空间维度,并且缺少小批量和通道维度。在您的例子中,这两个维度实际上是size=1的Singleton维度

尝试:

pytorch的Conv2d预计其2D输入实际上有4个维度:小批量维度、通道维度和两个空间维度。 您的输入张量只有两个空间维度,并且缺少小批量和通道维度。在您的例子中,这两个维度实际上是size=1的Singleton维度

尝试:

conv1(tensor1[None, None, ...])