在卷积神经网络中,特征图的空间尺度(空间尺寸)指的是特征图的高度和宽度。
一、卷积对特征图空间尺寸的影响
卷积操作会根据卷积核的大小、步幅和填充策略改变特征图的空间尺寸。
卷积核的大小(Kernel Size)
卷积核在特征图上滑动时,会提取局部区域的特征。卷积核的大小通常是一个奇数(例如 3x3、5x5),以便有一个中心元素。
步幅(Stride)
步幅决定了卷积核在特征图上滑动的步长。如果步幅为1,则卷积核每次移动一个像素;如果步幅为2,则每次移动两个像素。
填充(Padding)
填充是指在特征图的边缘添加额外的像素,以控制卷积操作后特征图的空间尺寸。常见的填充策略包括:
- 无填充(Valid Padding):不添加任何填充。这种情况下,通常输出特征图的尺寸会减小。
- 填充为 0(Zero Padding):在特征图的边缘添加零值,以便在卷积后保持特征图的尺寸不变。
二、空间尺寸变化的计算公式
在卷积操作中,输出特征图的尺寸可以通过以下公式计算:
输出高度
=
⌊
输入高度
+
2
×
填充
−
卷积核大小
步幅
⌋
+
1
\text{输出高度} = \left\lfloor \frac{\text{输入高度} + 2 \times \text{填充} - \text{卷积核大小}}{\text{步幅}} \right\rfloor + 1
输出高度=⌊步幅输入高度+2×填充−卷积核大小⌋+1
输出宽度 = ⌊ 输入宽度 + 2 × 填充 − 卷积核大小 步幅 ⌋ + 1 \text{输出宽度} = \left\lfloor \frac{\text{输入宽度} + 2 \times \text{填充} - \text{卷积核大小}}{\text{步幅}} \right\rfloor + 1 输出宽度=⌊步幅输入宽度+2×填充−卷积核大小⌋+1
三、示例
假设输入特征图的尺寸为 (32X32),卷积核大小为 (3X3),步幅为 1,并使用填充为 1 的策略:
- 输入特征图的高度和宽度:32
- 卷积核大小:3
- 填充:1
- 步幅:1
根据上述公式,计算输出特征图的尺寸:
输出高度 = ⌊ 32 + 2 × 1 − 3 1 ⌋ + 1 = 32 \text{输出高度} = \left\lfloor \frac{32 + 2 \times 1 - 3}{1} \right\rfloor + 1 = 32 输出高度=⌊132+2×1−3⌋+1=32
输出宽度
=
⌊
32
+
2
×
1
−
3
1
⌋
+
1
=
32
\text{输出宽度} = \left\lfloor \frac{32 + 2 \times 1 - 3}{1} \right\rfloor + 1 = 32
输出宽度=⌊132+2×1−3⌋+1=32
因此,输出特征图的高度和宽度保持不变,仍然是 (32)。