卷积神经网络,第二个卷积层如何在第一个池化层上工作

5

我正在阅读TensorFlow网站上的材料:

https://www.tensorflow.org/tutorials/layers

假设我们有10张灰度单色的28x28像素图像,
1. 如果在第一个卷积层中应用32个5x5的卷积滤波器并使用0填充,我们会得到10*32*28*28的数据。 2. 如果在第一个池化层中应用2x2的最大池化和步幅2,则会得到10*32*14*14的数据。 3. 到现在为止,一幅图像已经变成了32通道的14*14大小图像。
因此,如果我们应用第二个卷积层(比如说64个5x5的卷积滤波器),我们是否将这些滤波器应用于每个图像的每个通道,并获得10*32*64*14*14的数据呢?
2个回答

2
是和不是。您确实将过滤器应用于每个通道和每个图像,但您不会得到10 * 32 * 64 * 14 * 14的输出维度。输出的维数将是10 * 64 * 14 * 14,因为该层指定每个图像有64个输出通道。反过来,用于此卷积的权重将具有大小32 * 64 * 5 * 5(输入上的每个通道有64个5乘5的过滤器)。

忽略批量大小,第二个卷积的滤波器是否对来自第一轮卷积和池化的32个通道采用不同的值?如果它们相同,则权重应该具有大小64*5*5,对吗? - John
“1st round”是什么意思?您的5*5过滤器考虑到输入上的所有32个通道,以产生一个结果特征图。这个过程需要64次,每次使用64个不同的权重进行操作,否则您将得到64个相同的特征图。 - kafman

2
如果您使用一组 64 个 5x5 的过滤器来卷积和填充(忽略批次大小)一个 14x14x32 的体积,则最终会得到一个 14x14x64 的输出体积。每个卷积过滤器都将沿着整个输入深度进行卷积。因此,您的 14x14x32 输入体积将与一个 5x5 过滤器进行卷积,然后输出是 14x14x1 特征映射。然后,再次使用堆栈中第二个 5x5 过滤器来卷积输入体积。对于这 64 个过滤器中的每一个,执行相同的操作,最终形成您的输出体积 14x14x64。

1
当沿着整个输入深度进行卷积时,我们是否将具有64个权重的深度中的值相加,以获得14x14x1矩阵中的一个元素? - John

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