DenseNet算法详解

DenseNet的结构示意图:

DenseNet的连接方式更加粗暴:相互连接所有的层,每个层都会连接前面所有层作为额外的输入。

 

DenseNet网络的优点包括:

  • 减轻了梯度消失
  • 加强了feature的传递
  • 更有效地利用了feature 
  • 一定程度上较少了参数数量
  • 一定程度上减轻了过拟合

下图是ResNet的连接方式:每个层与前面的某层shortcut元素级相加

下图是Dense的连接方式:每一层都与前面所有层concat在一起(各个层的特征图大小是一致的)。对于L层的网络,DenseNet共包含L(L+1)/2个连接,相比ResNet,这是非常密集的连接。使用concat可以起到特征重用的效果,提升效率,这是DenseNetResNet的主要区别

DenseNet的前向传播过程如下图所示:

特征图保持大小一致的问题

使用DenseBlock + Transition的结构;

  1. DenseBlock是包含很多层的模块,每个特征图的大小相同;
  2. Transition模块是连接两个相邻的DenseBlock,并通过Pooling降低特征图大小

该层包含一个1*1conv和2*2的avgpooling,结构为BN+ReLU+1x1 Conv+2x2 AvgPooling

网络实现细节问题

上图中的Convolution采用BN+Relu+3*3Conv的结构,注意:各个层卷积之后均输出k个特征图,k称为growth rate,是一个超参数;一般情况下使用较小的k(如12),既能得到很好的性能。所有的3*3卷积都采用padding=1的方式保证特征图大小不变

例如:假设输入层的channel数为k0,则L层输入channel数为k0+k(l-1)

对于层数较多,则后面层的输入会非常大的问题

  1. DenseBlock内部可以采bottleneck层来减少计算量,主要通过添加1*1conv,同时也就得再添加BNRelu,这称为DenseNet-B结构
  2. Transition中也可以压缩通道数, Transition层可以产生?? 个特征,其中θ?(0,1]称为压缩系数,对于使用bottleneck层的Denseblock结构和压缩系数小于1的Transition组合结构称为DenseNet-BC

结果

imageNet结构配置

 

图片来自:https://blog.csdn.net/xiaohu2022/article/details/85560788

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值