两个卷积层之间的互连

Interconnection between two Convolutional Layers

我有一个关于 CNN 中两个卷积层之间互连的问题。例如假设我有这样的架构:

输入:28 x 28

conv1:3 x 3 过滤器,没有。过滤器数量:16

conv2:3 x 3 过滤器,没有。过滤器数量:32

在 conv1 之后,我们得到 16 x 28 x 28 的输出,假设图像的尺寸没有减少。所以我们有 16 个特征图。在下一层中,每个特征图都连接到下一层意味着如果我们将每个特征图(28 x 28)视为一个神经元,那么每个神经元将连接到所有 32 个过滤器意味着总 (3 x 3 x 16) x 32 个参数。这两层是如何堆叠或互连的?在人工神经网络的情况下,我们在两层之间有权重。 CNN也有类似的东西吗?一个卷积层的输出如何馈送到下一个卷积层?

f 个特征映射之后具有 n 个大小为 k×k 的过滤器的卷积层的参数数量是

n ⋅ (f ⋅ k ⋅ k + 1)

其中 +1 来自偏差。

因此每个 f 过滤器的形状都不是 k×k×1,而是 k×k×f

How the output of one convolutional layer is fed to the next convolutional layer?

就像输入被馈送到第一个卷积层一样。没有区别(特征图的数量除外)。

在一个输入特征图上进行卷积

图片来源:https://github.com/vdumoulin/conv_arithmetic

另请参阅:another animation

多输入特征图

效果一样:

  • 过滤器与输入具有相同的深度。之前是1,现在是更多。
  • 您仍然在所有 (x, y) 位置滑动过滤器。对于每个位置,它给出一个输出。

你的例子

  • 第一个卷积层:160 = 16*(3*3+1)
  • 第二个conv层:4640 = 32*(16*3*3+1)