两个卷积层之间的互连
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)
我有一个关于 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)