我想了解Torch中的卷积层(即nn.SpatialConvolution)和Pytorch中的卷积层(即torch.nn.Conv2d)之间的区别
在Torch的文档中,我找到了SpatialConvolution的输出形状
文档中提到:“如果输入图像是一个3D张量nInputPlane x height x width,输出图像的大小将是nOutputPlane x oheight x owidth,其中
owidth = floor((width + 2*padW - kW) / dW + 1)oheight = floor((height + 2*padH - kH) / dH + 1)
”
这与torch.nn.Conv2d在Pytorch文档中的描述不同。
这是否意味着它们是不同的操作?
回答:
是的,它们是不同的,因为torch没有dilation参数(关于扩张卷积的解释请见这里,简单来说,核在宽度和高度上每个核元素之间有“间隔”,这些间隔会在图像上滑动)。
除了dilation参数外,这两个方程是相同的(在pytorch的版本中将dilation设为1时,它们是相等的)。
如果你想在torch中使用dilation,有一个单独的类来处理这个问题,称为nn.SpatialDilatedConvolution。
