深度学习|表示学习|卷积神经网络|输出维度公式|15
如是我闻: 在卷积和池化操作中,计算输出维度的公式是关键,它们分别可以帮助我们计算卷积操作和池化操作后的输出大小。下面分别总结公式,并结合解释它们的意义:
1. 卷积操作的输出维度公式
当我们对输入图像进行卷积时,输出的宽度和高度可以通过以下公式计算:
输出大小 = 输入大小 − 卷积核大小 + 2 ⋅ 填充大小 步长 + 1 \text{输出大小} = \frac{\text{输入大小} - \text{卷积核大小} + 2 \cdot \text{填充大小}}{\text{步长}} + 1 输出大小=步长输入大小−卷积核大小+2⋅填充大小+1
符号说明:
- 输入大小 ( n n n):输入特征图的宽度或高度(假设为正方形,宽高一致)。
- 卷积核大小 ( k k k):卷积核的宽度或高度(也是正方形)。
- 填充大小 ( p p p):输入图像边界上填充的像素数量。
- 步长 ( s s s):卷积核滑动的步幅。
- 输出大小:卷积后的特征图宽度或高度。
解释公式的意义:
- 输入大小 - 卷积核大小:表示卷积核需要覆盖整个图像所需要的滑动范围。
- 填充大小:增加了边界像素,可以让卷积核覆盖更多区域,输出更大。
- 步长:决定滑动的速度,步长越大,输出图像越小。
- +1:确保包括卷积核的起始位置。
一个例子:
假设输入大小为 32 × 32 32 \times 32 32×32,卷积核大小为 3 × 3 3 \times 3 3×3,填充 p = 1 p = 1 p=1,步长 s = 1 s = 1 s=1。
套公式:
输出大小
=
32
−
3
+
2
⋅
1
1
+
1
=
32
\text{输出大小} = \frac{32 - 3 + 2 \cdot 1}{1} + 1 = 32
输出大小=132−3+2⋅1+1=32
所以,输出特征图的大小为 32 × 32 32 \times 32 32×32。
2. 池化操作的输出维度公式
池化(Pooling)的输出大小公式类似卷积,但更加简单:
输出大小 = 输入大小 − 池化窗口大小 步长 + 1 \text{输出大小} = \frac{\text{输入大小} - \text{池化窗口大小}}{\text{步长}} + 1 输出大小=步长输入大小−池化窗口大小+1
符号说明:
- 输入大小 ( n n n):输入特征图的宽度或高度。
- 池化窗口大小 ( k k k):池化窗口的宽度或高度。
- 步长 ( s s s):池化窗口滑动的步幅。
- 输出大小:池化后的特征图宽度或高度。
解释公式的意义:
- 输入大小 - 池化窗口大小:表示池化窗口覆盖图像所需要的滑动范围。
- 步长:决定池化窗口滑动的速度。
- +1:确保池化窗口的起始位置被计算。
一个例子:
假设输入大小为 32 × 32 32 \times 32 32×32,池化窗口大小为 2 × 2 2 \times 2 2×2,步长 s = 2 s = 2 s=2。
套公式:
输出大小
=
32
−
2
2
+
1
=
16
\text{输出大小} = \frac{32 - 2}{2} + 1 = 16
输出大小=232−2+1=16
所以,池化后的特征图大小为 16 × 16 16 \times 16 16×16。
3. 卷积和池化公式对比
操作类型 | 公式 |
---|---|
卷积操作 | 输出大小 = 输入大小 − 卷积核大小 + 2 ⋅ 填充大小 步长 + 1 \text{输出大小} = \frac{\text{输入大小} - \text{卷积核大小} + 2 \cdot \text{填充大小}}{\text{步长}} + 1 输出大小=步长输入大小−卷积核大小+2⋅填充大小+1 |
池化操作 | 输出大小 = 输入大小 − 池化窗口大小 步长 + 1 \text{输出大小} = \frac{\text{输入大小} - \text{池化窗口大小}}{\text{步长}} + 1 输出大小=步长输入大小−池化窗口大小+1 |
区别:
- 卷积公式中有“填充大小 ( p p p)”,而池化一般不考虑填充(默认为 0)。
- 卷积核用于提取特征,池化用于降采样。
4. 特征图通道数的变化
- 卷积操作:输出通道数 = 卷积核的数量(每个卷积核对应一个输出通道)。
- 池化操作:不会改变通道数,通道数与输入保持一致。
总的来说
- 卷积操作公式:更复杂,带有填充和步长的影响,用于特征提取。
- 池化操作公式:更简单,主要用于下采样,不改变通道数。
- 共同点:两者都通过滑动窗口的方式处理输入,并输出新的特征图。
以上