【发布时间】:2018-01-12 19:53:35
【问题描述】:
假设我对 conv 层的输入是 256 x 256 x 64,我使用了 32 个 3 x 3 的过滤器,为什么输出深度是 32 而不是 64?深度轴上的卷积是如何进行的?
【问题讨论】:
假设我对 conv 层的输入是 256 x 256 x 64,我使用了 32 个 3 x 3 的过滤器,为什么输出深度是 32 而不是 64?深度轴上的卷积是如何进行的?
【问题讨论】:
对于 CNN,每个过滤器都由其长度和宽度 (3 x 3) 定义。沿深度轴的连通性始终等于输入的深度。
以您为例:
您有 32 个过滤器,每个过滤器的大小为 (3x3)。因此,每个过滤器中的神经元将查看输入的 (3x3x64) 块,并且每个过滤器层中的神经元数量(没有零填充和步幅 = 1)将为 (256-3)。
所以, Neuron1 在每一层,即Layer1,Layer2,......,Layer32 查看输入的 (3x3x64) 的同一块。它使卷积层的输出大小为 (253x253x32)。
这就是滤波器数量决定 CNN 深度的方式。
为了更清楚地了解我在这里讨论的内容,您可以参考 @987654321 @。这可以更直观、更数学地解释 CNN。
【讨论】:
输出深度取决于当前卷积层中的过滤器数量。
当您定义过滤器时,您提供空间维度(X,Y),过滤器的最后一个维度基于输入通道。
由于在卷积中,每个滤波器 (3, 3, z) 与输入 (Xin,Yin,z) 卷积(简单来说就是元素虎钳乘法)产生 (Xout,Yout,1) 维输出。每个过滤器产生单层输出,这就是为什么输出深度等于该卷积层中的过滤器数量。
注意:如果您对层的输出大小感兴趣,则可以使用计算,这张幻灯片解释了卷积的工作原理。
X_out=(Xin+2Pad-kernal)/步幅
您可能想观看李飞飞教授讲座的video。这是她完整的Deep learning course。
【讨论】: