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

【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置

【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置

【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置


文章目录

  • 【深度学习|DenseNet-121】Densely Connected Convolutional Networks内部结构和参数设置
    • 前言
    • 1. 网络总体结构
    • 2. 具体层次结构
      • (1) 输入层(Input Layer)
      • (2) 第一卷积层(Conv1)
      • (3) Dense Block 1 (DB1)
      • (4) Transition Layer 1 (TL1)
      • (5) Dense Block 2 (DB2)
      • (6) Transition Layer 2 (TL2)
      • (7) Dense Block 3 (DB3)
      • (8) Transition Layer 3 (TL3)
      • (9) Dense Block 4 (DB4)
      • (10) 全局平均池化层(Global Average Pooling)
      • (11) 全连接层(Fully Connected Layer)
    • 3. 参数设置
    • 4. 总结
    • 2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)


欢迎宝子们点赞、关注、收藏!欢迎宝子们批评指正!
祝所有的硕博生都能遇到好的导师!好的审稿人!好的同门!顺利毕业!

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文:
可访问艾思科蓝官网,浏览即将召开的学术会议列表。会议详细信息可参考:https://ais.cn/u/mmmiUz

前言

DenseNet121 是 DenseNet(Densely Connected Convolutional Networks)架构中的一个重要版本,它采用了密集连接(dense connection)策略,其中每一层都与前面所有的层相连接。DenseNet121的“121”表示它包含121个卷积层。接下来,我将逐层详细说明 DenseNet121 的内部结构和参数设置

1. 网络总体结构

DenseNet121 的总体架构分为以下几个主要部分:

  • 卷积层(Convolutional Layer):最开始的卷积层(Conv1),用于对输入图像进行初步处理。
  • 密集块(Dense Blocks):DenseNet121 包含4个密集块,每个密集块由若干个密集单元(Dense Units)组成。每个密集单元的输出连接到后续所有单元,并且每个密集单元的输入是所有前面单元的输出。
  • 过渡层(Transition Layers):每个密集块之间会有一个过渡层,它包括一个1×1卷积层和一个2×2的平均池化层(Average Pooling)。
  • 全局平均池化层(Global Average Pooling):在最后一个密集块后使用全局平均池化。
  • 全连接层(Fully Connected Layer):全连接层用于输出预测结果。

2. 具体层次结构

(1) 输入层(Input Layer)

  • 输入尺寸通常为 224×224×3,即输入的图像大小为224x224,具有3个颜色通道(RGB)。

(2) 第一卷积层(Conv1)

  • 卷积层:1个卷积层,过滤器大小为7×7,步长为2,输出通道数为64。
  • BatchNorm:进行批归一化,减少内部协方差偏移。
  • ReLU 激活:应用ReLU激活函数。
  • 池化层:3×3最大池化,步长为2,减小空间维度。

输入的大小为 224×224×3,经过这个层之后输出 112×112×64。

(3) Dense Block 1 (DB1)

  • 层数:包含6个Dense Units
  • 每个Dense Unit:每个Dense Unit由3层组成:1×1卷积层(瓶颈层,减少通道数),3×3卷积层(标准卷积层,增加特征数量)。每个Dense Unit的输出特征图将与前面所有的输出特征图连接。

在Dense Block 1 之后,输出的特征图维度为 56×56×256。

(4) Transition Layer 1 (TL1)

  • 1×1卷积层:用于降低通道数,通常减少至128个通道。
  • 平均池化层:进行2×2平均池化,步长为2,减小空间维度。

输出的特征图维度为 28×28×128。

(5) Dense Block 2 (DB2)

  • 层数:包含12个Dense Units。
  • 每个Dense Unit:和第一个密集块相同,由1×1卷积层和3×3卷积层组成,每个单元的输出连接到所有前面的单元。

在Dense Block 2 之后,输出的特征图维度为 28×28×512。

(6) Transition Layer 2 (TL2)

  • 1×1卷积层:减少通道数,通常减少至256个通道。
  • 平均池化层:2×2平均池化,步长为2。

输出的特征图维度为 14×14×256。

(7) Dense Block 3 (DB3)

  • 层数:包含24个Dense Units。
  • 每个Dense Unit:同样是由1×1卷积和3×3卷积组成,每个单元的输出连接到前面的所有单元。

在Dense Block 3 之后,输出的特征图维度为 14×14×1024。

(8) Transition Layer 3 (TL3)

  • 1×1卷积层:将通道数减少到512。
  • 平均池化层:进行2×2的平均池化。

输出的特征图维度为 7×7×512。

(9) Dense Block 4 (DB4)

  • 层数:包含16个Dense Units。
  • 每个Dense Unit:继续由1×1卷积层和3×3卷积层构成,所有单元的输出继续连接。

在Dense Block 4之后,输出的特征图维度为 7×7×1024。

(10) 全局平均池化层(Global Average Pooling)

  • 池化层:将特征图的每个通道进行平均池化,从 7×7×1024 压缩成 1×1×1024。

输出的维度为 1×1×1024。

(11) 全连接层(Fully Connected Layer)

  • FC层:最后通过一个全连接层映射到目标类别数的维度。例如,在分类任务中,如果有1000个类别,则输出维度为1000。

3. 参数设置

  • Growth Rate:每个Dense Unit的增长率(growth rate)通常设定为32,这表示每经过一个Dense Unit,输出的特征图的通道数将增加32个。
  • Dropout:DenseNet121的实现中,通常会加入dropout层,防止过拟合。它的使用通常是0.2到0.5之间。
  • 初始化方法:通常使用He初始化(He Initialization)来初始化卷积层,以避免梯度消失问题。
  • 激活函数:在所有卷积层后应用ReLU激活函数。
  • 批归一化:所有卷积层和全连接层后面都应用了批归一化(Batch Normalization)操作。

4. 总结

  • DenseNet121 是一个非常高效且深度的神经网络,通过密集连接每个层的输出,使得模型能够有效地重用特征并减少参数量。尽管具有较多的层数,但由于密集连接,它的参数量相比于传统的深度神经网络(例如VGG)要少得多,且能够取得更好的性能。

2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)

  • 2025 International Conference on Advances in Computer Vision Research and Applications
  • 2025年2月28-3月2日 广州
  • 会议官网:www.acvra.org
  • EI检索稳定
  • 接受/拒稿通知:投稿后1周左右
http://www.lryc.cn/news/527796.html

相关文章:

  • 数据结构与算法-要点整理
  • Fort Firewall:全方位守护网络安全
  • Nginx实战技巧(Practical Tips for nginx)
  • YOLOv8:目标检测与实时应用的前沿探索
  • 解锁数字经济新动能:探寻 Web3 核心价值
  • Lua 环境的安装
  • Object类(2)
  • 汽车网络信息安全-ISO/SAE 21434解析(中)
  • fatal error C1083: ޷[特殊字符]ļ: openssl/opensslv.h: No such file or directory
  • C#System.Threading.Timer定时器意外回收注意事项
  • 20.Word:小谢-病毒知识的科普文章❗【38】
  • vue3底层原理和性能优化
  • Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
  • 金融级分布式数据库如何优化?PawSQL发布OceanBase专项调优指南
  • springboot 动态线程池
  • 【PySide6快速入门】qrc资源文件的使用
  • 【creo】CREO配置快捷键方式和默认单位
  • STM32使用VScode开发
  • 数据结构与算法再探(六)动态规划
  • 若依基本使用及改造记录
  • 学习数据结构(2)空间复杂度+顺序表
  • C语言复习
  • Qt监控系统辅屏预览/可以同时打开4个屏幕预览/支持5x64通道预览/onvif和rtsp接入/性能好
  • ubuntu22安装issac gym记录
  • IDEA工具下载、配置和Tomcat配置
  • Three.js实战项目02:vue3+three.js实现汽车展厅项目
  • 动态规划——斜率优化DP
  • 【深度之眼cs231n第七期】笔记(三十一)
  • 【云安全】云原生-K8S-简介
  • SpringBoot中Excel表的导入、导出功能的实现