DenseNet是在ResNet的基础上进行的增强,两者的主要区别在于:
1、DenseNet是让前面所有层与后面层实现密集连接;
2、DenseNet实现残差连接时,是通过在通道数上进行堆叠,而不是像ResNet那样实现元素级相加。
下面是DenseNet的网络结构:

我们可以看到DenseNet实现了一种更为激进的密集连接机制,也就是后面的每一层都会接受前面所有层作为输入。DenseNet的网络结构由两个部分所组成:DenseBlock+Transition。其中DenseBlock主要实现的是残差连接,Transition主要实现的是降低特征图的大小。因为DenseBlock中实现的是维度上的拼接,因此要求特征图大小必须一致,只能通过Transition来实现缩小特征图。

由于DenseNet采用的是密集连接,导致后面的层会得到非常多的输入,从而导致计算难度增加,因此可以在DenseBlock中采用瓶颈结构来减少计算量,主要就是通过
1
×
1
1\times1
1×1的卷积来降低特征图的维度,这种结构叫做DenseNet-B。
其中Transition的结构为:
B
N
+
R
e
l
u
+
1
∗
1
C
o
n
v
+
2
∗
2
A
v
g
P
o
o
l
i
n
g
BN+Relu+1*1Conv+2*2AvgPooling
BN+Relu+1∗1Conv+2∗2AvgPooling,这种结构叫做DenseNet-C
使用了瓶颈结构的DenseBlock以及压缩系数小于1的Transition结构,这样的结构叫做DenseNet-BC
DenseNet在ResNet基础上增强,实现前后层密集连接,通过通道堆叠而非元素级相加实现残差连接。网络结构包含DenseBlock和Transition,前者用于残差连接,后者用于缩小特征图。引入瓶颈结构和压缩系数降低计算复杂度。

被折叠的 条评论
为什么被折叠?



