如是我闻: 一个经典的卷积神经网络(CNN)架构,呈现的是输入图像通过多个卷积层、池化层以及全连接层,最终输出分类结果的过程。整个过程的核心是理解输入特征图的尺寸如何在每一层发生变化,我们可以通过卷积核大小、步长、填充和池化操作的参数,来推导每一层的维度变化。
1. 输入图像
- 输入大小:83×83
- 输入是一个 83 × 83 83 \times 83 83×83 的二维图像(假设是灰度图,只有一个通道)。
2. 第一层:卷积操作
- 卷积核大小:9×9
- 卷积核个数:64(表示有 64 个特征图)
- 步长(stride):默认 1
- 填充(padding):未明确,假设没有填充( p = 0 p = 0 p=0)
输出大小计算公式:
输出大小 = 输入大小 − 卷积核大小 + 2 ⋅ 填充 步长 + 1 \text{输出大小} = \frac{\text{输入大小} - \text{卷积核大小} + 2 \cdot \text{填充}}{\text{步长}} + 1 输出大小=步长输入大小−卷积核大小+2⋅填充+1
套入公式:
输出大小 = 83 − 9 + 2 ⋅ 0 1 + 1 = 75 × 75 \text{输出大小} = \frac{83 - 9 + 2 \cdot 0}{1} + 1 = 75 \times 75 输出大小=183−9+2⋅0+1=75×75
输出维度:
- 第一层输出有 64 个特征图,每个特征图大小为 75 × 75 75 \times 75 75×75。
- 输出维度:64 × 75 × 75
3. 第二层:池化操作(Pooling)
- 池化类型:10×10 窗口
- 步长(stride):5(5×5 的下采样)
输出大小计算公式:
输出大小 = 输入大小 − 池化窗口大小 步长 + 1 \text{输出大小} = \frac{\text{输入大小} - \text{池化窗口大小}}{\text{步长}} + 1 输出大小=步长输入大小−池化窗口大小+1
套入公式:
输出大小 = 75 − 10 5 + 1 = 14 × 14 \text{输出大小} = \frac{75 - 10}{5} + 1 = 14 \times 14 输出大小=575−10+1=14×14
输出维度:
- 池化不会改变通道数,所以输出的通道数仍然是 64。
- 输出维度:64 × 14 × 14
4. 第三层:卷积操作
- 卷积核大小:9×9
- 卷积核个数:256(输出通道数增加到 256)
- 步长(stride):默认 1
- 填充(padding):未明确,假设没有填充( p = 0 p = 0 p=0)
输出大小计算公式:
输出大小 = 输入大小 − 卷积核大小 + 2 ⋅ 填充 步长 + 1 \text{输出大小} = \frac{\text{输入大小} - \text{卷积核大小} + 2 \cdot \text{填充}}{\text{步长}} + 1 输出大小=步长输入大小−卷积核大小+2⋅填充+1
套入公式:
输出大小 = 14 − 9 + 2 ⋅ 0 1 + 1 = 6 × 6 \text{输出大小} = \frac{14 - 9 + 2 \cdot 0}{1} + 1 = 6 \times 6 输出大小=114−9+2⋅0+1=6×6
输出维度:
- 卷积核的数量是 256,所以输出有 256 个特征图。
- 输出维度:256 × 6 × 6
5. 第四层:池化操作
- 池化类型:6×6 窗口
- 步长(stride):4(4×4 的下采样)
输出大小计算公式:
输出大小 = 输入大小 − 池化窗口大小 步长 + 1 \text{输出大小} = \frac{\text{输入大小} - \text{池化窗口大小}}{\text{步长}} + 1 输出大小=步长输入大小−池化窗口大小+1
套入公式:
输出大小 = 6 − 6 4 + 1 = 1 × 1 \text{输出大小} = \frac{6 - 6}{4} + 1 = 1 \times 1 输出大小=46−6+1=1×1
输出维度:
- 池化后,每个特征图缩减为 1 × 1 1 \times 1 1×1。
- 输出维度:256 × 1 × 1
6. 全连接层
-
输入:256 × 1 × 1
- 全连接层会将 256 × 1 × 1 256 \times 1 \times 1 256×1×1 的张量展平为 256 个节点。
- 每个节点通过权重映射到最终的分类输出。
-
输出:101(分类结果)
- 最终输出是 101 个类别的分类概率。
维度变化总结
- 输入图像: 83 × 83 83 \times 83 83×83
- 第一层(卷积): 64 × 75 × 75 64 \times 75 \times 75 64×75×75
- 第二层(池化): 64 × 14 × 14 64 \times 14 \times 14 64×14×14
- 第三层(卷积): 256 × 6 × 6 256 \times 6 \times 6 256×6×6
- 第四层(池化): 256 × 1 × 1 256 \times 1 \times 1 256×1×1
- 全连接层:展平为 256 256 256,输出为 101 101 101 类别。
以上