如何计算 3D 卷积中的输出形状

机器算法验证 机器学习 神经网络 卷积神经网络
2022-03-23 12:58:34

我有一系列形状的图像。如果我将 conv3d 与 8 个具有空间范围且没有填充的内核一起应用,如何计算输出的形状。(40,64,64,12)(3,3,3)

如果下一层是最大池化,输出形状是什么?(2,2,2)

2个回答

卷积公式与 2D 相同,在CS231n 教程中有很好的描述:

Out=(WF+2P)/S+1

...其中是输入体积大小,是感受野大小,是步幅,是边界上使用的零填充量。特别是,当时,就像您的问题一样,它简化为WFSPS=1P=0

Out=WF+1

因此,如果您输入张量,忽略批量大小和,则输出张量大小将为(40,64,64,12)F=3(38,62,62,8)


池化层通常将每个空间维度减半。这对应于局部感受野大小F=(2, 2, 2)和步幅S=(2, 2, 2)因此,输入张量将转换为(38,62,62,8)(19,31,31,8)

但是您设置了 stride S=(1, 1, 1),它会将每个空间维度减少 1:(37,61,61,8)

最后一个维度没有改变。

PyTorch 的文档中对此进行了解释nn.Conv3d

在此处输入图像描述