在著名的卷积神经网络示例中无法计算池化和二次采样后的维度

Posted

技术标签:

【中文标题】在著名的卷积神经网络示例中无法计算池化和二次采样后的维度【英文标题】:could not calculate the dimensions after pooling and subsampling in the famous Convolutional neural nets example 【发布时间】:2014-09-27 01:30:21 【问题描述】:

上图来自 Yann LeCun 的 pdf,标题为“Hierarchical Models Of Perception and Reasoning”

我无法理解第 2 层是 14X14 的特征图? 10X10 pooling 和 5X5 subsampling 的 75X75 矩阵如何给出 14X14 矩阵?

【问题讨论】:

你知道为什么 64 个内核(从输入到第 1 层)产生 64 个特征图,而 4096 个内核(第 2 层到第 3 层)产生 256 个特征图吗? 【参考方案1】:

如果您参考 LeCun 等人的 this other paper。相同的网络用于更大的输入(143x143 灰度图像):

第一阶段有 64 个大小为 9x9 的过滤器,然后是一个子采样层 5x5 步幅和 10x10 平均窗口。 [...]

这给出了正确的尺寸:

output size = (input size - window size) / step + 1
            = (75-10) / 5 + 1
            = 14

【讨论】:

抱歉,我无法从那篇论文中得到什么。但如果你能帮助我,让我知道在 75X75 矩阵上应用 10X10 池化的矩阵大小是多少 两个 参数:1/ 窗口大小,也就是内核大小 (= 10) 2/ 步幅,也就是步长 (= 5)。默认步幅为 1,75x75 矩阵上的 10x10 池化得到75-10+1 = 66,因此输出矩阵为 66x66。步幅为 5 时,您将获得 14x14 的输出矩阵(见上文)。例如请参考 Torch nn.SpatialSubSampling。 嘿,非常感谢@deltheil 的简单而完整的回复:)。我现在明白了。但是正如 Hugo Larochelle 在 youtube 上的深度学习视频中提到的那样,子采样是没有重叠的池化。只是想确认上图中提到的子采样(5X5)是一个步幅(步长)值,并不是这样,首先应用步幅为1的池化(10X10)然后再进行子采样(5X5)是这样做是为了减小尺寸。 嗨,@deltheil 你能告诉我为什么 64 个内核(从输入到第 1 层)产生 64 个特征图,而 4096 个内核(第 2 层到第 3 层)产生 256 个特征图吗?谢谢!

以上是关于在著名的卷积神经网络示例中无法计算池化和二次采样后的维度的主要内容,如果未能解决你的问题,请参考以下文章

卷积神经网络学习笔记与心得池化

上池化(unpooling),上采样(unsampling)和反卷积(deconvolution)的区别

深度学习卷积神经网络最大池化运算

池化(下采样)是什么?图像池化与卷积的区别

卷积神经网络-池化汇总

最大值池化与均值池化比较分析