我对这个卷积的计算方式及其输出维度有一些疑问。我熟悉使用nxm核的简单卷积,包括步长、膨胀或填充,这方面没有问题,但这个维度对我来说似乎有些奇怪。由于我使用的模型是广为人知的onnx-mnist,我认为它应该是正确的。
所以,我的观点是:
- 如果输入的维度是1x1x28x28,输出如何是1x8x28x28?
- W表示卷积核。它怎么可能是8x1x5x5?据我所知,第一个维度是批量大小,但这里我只是在对1个输入进行推断。这有意义吗?
- 我正在从头开始实现这个卷积运算符,到目前为止,对于1x1x28x28的输入和1x1x5x5的核,它都能工作,但那个额外的维度对我来说没有意义。
附件中是我试图做的卷积,希望这不是太特定于onnx
。
回答:
我没有看到你使用的代码,但我猜8是卷积核的数量。这意味着你对输入应用了8个不同的5×5大小的核,在批量大小为1的情况下。这样你就能得到输出中的1x8x28x28,其中8表示激活图的数量(每个核对应一个)。
你的卷积核维度(8x1x5x5)的数字解释如下:
- 8:不同滤波器/核的数量(将是每张图像的输出图数量)
- 1:输入通道数。如果你的输入图像是RGB而不是灰度,这将是3而不是1。
- 5:第一个空间维度
- 5:第二个空间维度