深度学习|表示学习|卷积神经网络|详细推导每一层的维度变化|14

如是我闻: 一个经典的卷积神经网络(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 类别。

以上

相关推荐
通信小呆呆2 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
xiao5kou4chang6kai42 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
H__Rick2 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee2 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
renhongxia12 天前
世界模型作为AGI落地底层底座的作用
人工智能·深度学习·生成对抗网络·自然语言处理·知识图谱·agi
计算机科研狗@OUC2 天前
(cvpr26) AIMDepth: Asymmetric Image-Event Mamba for Monocular Depth Estimation
人工智能·深度学习·计算机视觉
Alsn862 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e2 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨2 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq2 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息