当前位置: 首页 > article >正文

深度学习|表示学习|卷积神经网络|详细推导每一层的维度变化|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 输出大小=1839+20+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 输出大小=57510+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 输出大小=1149+20+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 输出大小=466+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 类别。

以上


http://www.kler.cn/a/522342.html

相关文章:

  • [MySQL]事务的理论、属性与常见操作
  • LangGraph系列-1:用LangGraph构建简单聊天机器人
  • 9.8 实战:使用 GPT Builder 开发定制化 ChatGPT 应用
  • 【Linux】Linux C比较两个 IPv6 网关地址是否相等,包括前缀
  • 大数据学习之SCALA分布式语言三
  • 【shell工具】编写一个批量扫描IP地址的shell脚本
  • 项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)
  • Golang Ticker Reset异常的坑
  • 第一届“启航杯”网络安全挑战赛WP
  • xss总结标签
  • 滑动窗口详解:解决无重复字符的最长子串问题
  • EtherCAT主站IGH-- 17 -- IGH之fsm_master.h/c文件解析
  • 分布式系统相关面试题收集
  • C语言中宏(Macro)的高级用法:中英双语
  • 人工智能在计算机视觉中的应用与创新发展研究
  • Day27-【13003】短文,什么是栈?栈为何用在递归调用中?顺序栈和链式栈是什么?
  • scikit-learn基本功能和示例代码
  • postgresql 9.4.1 普通表,子表,父表的创建与测试
  • 系统设计的
  • JavaScript系列(46)-- WebGL图形编程详解
  • 专为课堂打造:宏碁推出三款全新耐用型 Chromebook
  • 【实用技能】如何借助Excel处理控件Aspose.Cells,使用 C# 锁定 Excel 中的单元格
  • 获取加工视图下所有元素
  • java后端之事务管理
  • 【C++探索之路】STL---string
  • Day27-【13003】短文,单链表应用代码举例