DenseNet及相关代码简介

本文介绍了DenseNet卷积神经网络,强调其缓解梯度消失、增强特征传递和减少参数数量的优点。DenseNet通过密集连接所有层,增加网络内部信息交互。文章详细阐述了DenseNet的dense block结构,bottleneck layer的作用,以及transition layer在减少计算量和通道数上的贡献。还探讨了代码实现中的关键部分,包括concatenation操作和网络搭建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文:Densely Connected Convolutional Networks
论文链接:https://arxiv.org/pdf/1608.06993.pdf
这几年卷积神经网络的提升效果的方向,要么深(比如ResNet,解决了网络深时候的梯度消失问题)要么宽(比如GoogleNet的Inception),而论文作者则是从特征入手,以实现更好的效果和更少的参数的问题。DenseNet的优点可以主要概括为以下几个方面:

  • 减轻了vanishing-gradient(梯度消失)
  • 加强了feature的传递
  • 更有效地利用了feature
  • 一定程度上较少了参数数量

在深度学习网络中,随着网络深度的加深,梯度消失问题会愈加明显,目前很多论文都针对这个问题提出了解决方案,比如ResNet,Highway Networks,Stochastic depth,FractalNets等。至于DenseNet主要是在保证网络中层与层之间最大程度的信息传输的前提下,直接将所有层连接起来。
了解DenseNet就不得不提dense block的结构图,在传统的网络结构中,如果有L层,就会有L个连接,但是对于DenseNet就会有(L+1)*L/2个连接,简而言之,就是将所有层都连接到一起。如图所示,将X0当作Input,那么H2的输入就包括X0和H1的输出X1。
dense block的结构图
接下来我们侧重点在于DenseNet的网络的搭建,下面的图为DenseNet的结构图,在这个结构图中包含了3个dense block。论文的作者将DenseNet分成多个dense block,原因是希望各个dense block内的feature map的size统一,这样在做concatenation就不会有size的问题。
DenseNet结构图

接下来,我们从代码层次下对DenseNet进行探讨,首先我们可以先看下论文中给的网络结构图。在这个表中,k=32,k=48中的k是growth rate,表示每个dense block中每层输出的feature map个数。为了避免网络变得很宽,作者都是采用较小的k,比如32这样,作者的实验也表明小的k可以有更好的效果。根据dense block的设计,后面几层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值