卷积神经网络中的维度

6
我正在尝试理解卷积神经网络中的维度行为。在下面的图中,输入是一个28x28矩阵,具有1个通道。然后有32个5x5滤波器(高度和宽度上的步幅为2)。因此,我理解结果为14x14x32。但是在下一个卷积层中,我们有64个5x5滤波器(再次使用步幅2)。那么为什么结果是7x7x64而不是7x7x32x64?难道我们不是将这64个滤波器中的每一个都应用于这32个通道中的每一个吗?

enter image description here


参见:http://stackoverflow.com/a/42636245/562769 - Martin Thoma
3个回答

2

一个过滤器是在前一层中所有维度的总和。这意味着5x5的过滤器对32个维度求和,实质上是32*5*5个值的加权和。然而,权重值在维度之间是共享的。然后有64个这样的过滤器。更好的解释可以在这里找到:http://cs231n.github.io/convolutional-networks/


2
深度通常是隐含给出的。例如,许多图像被认为具有深度3(每个像素中的三个颜色维度)。因此,通过一个5x5的滤波器,我们指的是一个5x5x3的滤波器。在您的情况下,5x5滤波器实际上是一个5x5x32的滤波器。 深度为1的通常是明确说明的(如“5x5x1滤波器”)。

1

这里有一个清晰的解释,说明输入大小如何随着层数的增加而变化。

在输入中,您提供的尺寸为28宽度和28高度,深度为1。对于第一层的过滤器,过滤器的深度维必须等于输入的深度维。因此,过滤器的尺寸将是5x5x1,应用一个过滤器后,由于步幅的缘故,维度减少以产生14x14x1维度激活图,因此应用32个这样的过滤器将给您32个激活图。将所有这些14x14x32组合起来就是第1层的输出,并作为第2层的输入。同样,在第二层中,您需要在该层上应用一个5(宽)x5(高)x32(深度)的过滤器,以产生一个14x14x1的激活图,堆叠所有64个激活图将给您第二层的输出尺寸为14x14x64,依此类推。

是的,实际上您在每个32个通道上应用了64个过滤器。


根据问题中的图像,我们需要应用一个5(宽)x 5(高)x 64(深度)的过滤器,您已将深度设置为32。 - Dhanraj Kotian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接