深度学习|表示学习|卷积神经网络|详细推导每一层的维度变化|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 类别。

以上

相关推荐
不羁的木木3 分钟前
ArkWeb实战学习笔记02-环境搭建与基础配置
笔记·学习·harmonyos
stars-he4 分钟前
SPICE编程与仿真学习笔记:从网表到瞬态分析
笔记·学习·硬件工程
江苏世纪龙科技8 分钟前
科鲁兹虚拟系统破解汽车实训“三难“:工位少、组织难、评价弱
学习
小拉达不是臭老鼠9 分钟前
Unity数据持久化_Json
学习·unity
水木流年追梦11 分钟前
大模型入门-大模型优化方法3
人工智能·分布式·python·深度学习·机器学习
武子康15 分钟前
调查研究-148 Deepseek-V4-Flash 生成式AI十大高频业务场景落地指南
大数据·人工智能·深度学习·ai·chatgpt·deepseek
.千余21 分钟前
【C++】C++核心语法:函数重载与缺省参数原理与避坑
c语言·开发语言·c++·经验分享·笔记·git·学习
段一凡-华北理工大学24 分钟前
工业领域的Hadoop架构学习~系列文章03:MapReduce编程模型深度解读
大数据·人工智能·hadoop·学习·架构·高炉炼铁·高炉智能化
bush439 分钟前
嵌入式linux学习记录三
学习
霸道流氓气质42 分钟前
Spring AI Alibaba 学习路线图:从入门到精通
人工智能·学习·spring