首页 > 解决方案 > 了解 2D 卷积输出大小

问题描述

我是卷积深度学习的初学者。我在论文Simultaneous Feature Learning and Hash Coding with Deep Neural Networks中看到了以下架构:对于大小为 256*256 的图像, |类型|滤波器大小/步幅|输出大小|  |:-|:-|:-|  |卷积|11*11 / 4|96 * 54 * 54|  |卷积|1*1 / 1|96 * 54 * 54|  |最大池|3*3 / 2|96 * 27 * 27|

我不明白第一个2D卷积的输出大小:96*54*54。96 似乎很好,因为过滤器的数量是 96。但是,如果我们对输出大小应用以下公式:size = [(W−K+2P)/S]+1= [(256 - 11 + 2*0)/4] + 1 = 62.25 ~ 62。我假设填充, P 为 0,因为它在论文中的任何地方都没有提到。Keras Conv2D API 产生相同的 96*62*62 大小的输出。那么,为什么paper指向96*54*54呢?我错过了什么?

标签: tensorflowmachine-learningdeep-learningconv-neural-networkconvolution

解决方案


嗯,它让我想起了AlexNet 论文中存在类似错误的地方。你的计算是正确的。我认为他们错误地写了 256x256 而不是 224x224,在这种情况下,输入层的计算是,

(224-11+2*0)/4 + 1 = 54.25 ~ 54

很有可能作者错误地写了 256x256 而不是真正的架构输入大小为 224x224(AlexNet 也是这种情况),或者另一个不太可能的选择是他们写了 256x256,这是真正的架构输入大小,但计算224x224。后者是可以忽略的,因为我认为这是一个非常愚蠢的错误,我认为这甚至不是一个选择。

因此,我相信真正的输入大小是 224x224 而不是 256x256。


推荐阅读