VGG19如何将64通道翻倍到128通道

问题描述 投票:0回答:2

在 VGG19 中,第一个卷积层之后的通道数是 64,然后增加到 128。我猜这 128 个通道每个都来自 33 内核。 64 个通道中的每个通道都被卷积两次(因此使用两个 33 内核),从而产生 2 个通道,这是真的吗? (所以我们总共得到 2*64 = 128 个通道。)

deep-learning neural-network conv-neural-network vgg-net
2个回答
2
投票

你的意思可能是

3x3
而不是
33
。这是 RGB 图像的卷积过程,

如果您的图像的体积(高度、宽度、通道)为

(200, 200, 3)
并且具有
64 filters of 3x3
那么每个滤波器的形状必须为
(3, 3, 3)
才能在
(200, 200, 3)
上进行卷积。 通道必须匹配,因为它们将按元素相乘,然后最终添加所有结果。

为了在卷积后保留体积的高度和宽度,应用了填充。将

(1, 1)
填充应用于
(200, 200, 3)
会产生新的体积形状
(202, 202, 3)
.

卷积单滤波器

(3, 3, 3)
(202, 202, 3)
上的输出是
(200, 200, 1)
。然后添加一个偏差,通过广播变成
(200, 200, 1)
的形状,与输出音量相加仍然导致
(200, 200, 1)
.

接下来,如果

64 filters of shape (3, 3, 3)
与填充输入
(202, 202, 3)
卷积,则输出结果的形状为
(200, 200, 64)
。作为卷积结果的每个
(200, 200, 1)
输出量是
stacked channel wise
导致
(200, 200, 64)
。然后应用偏置、非线性等。

同样适用于128滤波器得到128通道输出,

如果填充的输入量是

(202, 202, 64)
filter size of 3x3
然后卷积它的形状必须是
(3, 3, 64)
。这个卷积的结果是维度
(200, 200, 1)
.

128 filters of (3, 3, 64)
执行相同的操作会导致
(200, 200, 128)
的输出体积形状。 这种方式通道设置为所需数量的过滤器。

假设所有步幅都是

1
1x1
卷积也可以给出所需数量的输出通道。

这些在这里用公式解释得更清楚,

从第 68 页开始了解体积卷积,http://cs231n.stanford.edu/slides/2021/lecture_5.pdf

体积卷积,https://www.coursera.org/learn/convolutional-neural-networks/lecture/ctQZz/convolutions-over-volume

卷积公式,https://www.coursera.org/learn/convolutional-neural-networks/lecture/nsiuW/one-layer-of-a-convolutional-network

VGG架构,https://www.coursera.org/learn/convolutional-neural-networks/lecture/MmYe2/classic-networks


0
投票

我认为问题是“通过 Pooling 后输入的通道数如何翻倍?”与 VGG-16 和 VGG-19 一样,池化层中的通道从 64 个增加到 128 个,而 H 和 W 减少了一半。这是如何发生的,是否在一层中应用了两种不同类型的池化,因此每个特征图都会产生两个不同的较小特征图? 我对吗@jequesais @desertnaut

© www.soinside.com 2019 - 2024. All rights reserved.