Machine learning 什么';“Torch”(即“nn.SpatialConvolution”)中的卷积层与“Pytorch”(即“Torch.nn.Conv2d”)中的卷积层不同

Machine learning 什么';“Torch”(即“nn.SpatialConvolution”)中的卷积层与“Pytorch”(即“Torch.nn.Conv2d”)中的卷积层不同,machine-learning,conv-neural-network,pytorch,torch,Machine Learning,Conv Neural Network,Pytorch,Torch,我想知道Torch(即nn.SpatialConvolution)中的卷积层和Pytorch(即Torch.nn.Conv2d)中的卷积层之间的区别 在Torch的文档中,我找到了SpatialConvolution 它表示“如果输入图像是三维张量nInputPlane x height x width,则输出图像大小将为noutplane x oheight x owidth,其中 owidth = floor((width + 2*padW - kW) / dW + 1) oheight

我想知道
Torch
(即
nn.SpatialConvolution
)中的卷积层和
Pytorch
(即
Torch.nn.Conv2d
)中的卷积层之间的区别

Torch
的文档中,我找到了
SpatialConvolution

它表示“如果输入图像是三维张量
nInputPlane x height x width
,则输出图像大小将为
noutplane x oheight x owidth
,其中

owidth  = floor((width  + 2*padW - kW) / dW + 1)
oheight = floor((height + 2*padH - kH) / dH + 1)
"

它不同于Pytorch文档中的
torch.nn.Conv2d


这是否意味着它们是不同的操作?

是的,它们是不同的,因为
火炬
没有
膨胀
参数(有关膨胀的解释,请参见,基本上内核在每个内核元素宽度和高度之间有“空格”,这就是在图像上滑动的部分)

除了
膨胀
之外,这两个方程都是相同的(在
pytorch
的版本中将
膨胀
设置为一,并且相等)


如果您想在
torch
中使用
diagration
,则有一个单独的调用类。

因此
stride
torch
中默认等于
diagration
?因为当
width
=
Win
padW
=
padding[0]
kW
=
kernel\u size[0]
dW
=
stride
=
1
(即
Pytorch
中的默认值)时,我不能得到相同的答案和
膨胀=1
。火炬内无扩张;i、 e.膨胀始终有效为1英寸。