前言
DenseNet和ResNet的思路类似,目的都是减轻梯度消失等深度学习中常见的一些问题。论文中写出DenseNet采用的是密集连接的方式,初次看还不太能理解,但是又感觉有点熟悉(突然想到了RNN中的LSTM结构),我认为密集连接通俗一点讲,就是联系上下文(英语考试中遇到不认识的单词,可以联系上下文进行猜测,应该是类似的)。
DenseNet结构简图
每一层的输入与前面层都有关系,应该说是联系上文吧。
DenseNet完整结构图
这里以DenseNet-121为例:
- Dense Block主要是1*1和3*3的卷积层组成,每一块分别重复6/12/24/16次,提取特征图
- 每一块后接上pooling层积进行下采样
- 具体的输入和输出看下面的图(图片来自https://blog.csdn.net/weixin_31852627/article/details/112111904)和表格,重点关注通道数的变化(通道数的变化不容易理解)
图片和表格的解释:
- 输入图片经过一次卷积和池化后变成56*56的尺寸,而最后的输出通道为32+32=64
- 经过Dense_Block_1的6次卷积,通道数变成64+32*6=256,经过1*1卷积调整通道数,2*2池化 进行下采样,最后输出为28*28*128
- 经过Dense_Block_2的12次卷积,通道数变成128+32*12=512,经过1*1卷积调整通道数,2*2池化 进行下采样,最后输出为28*28*256
- 经过Dense_Block_3的24次卷积,通道数变成256+32*25=1024,经过1*1卷积调整通道数,2*2池化 进行下采样,最后输出为14*14*512
- 经过Dense_Block_4的16次卷积,通道数变成512+32*12=1024,经过7*7卷积调整通道数,最后输出为1*1*1024