经典卷积神经网络之DenseNet

时间:2024-03-31 15:20:59

        DenseNet是在ResNet的基础上进行的增强,两者的主要区别在于:
                1、DenseNet是让前面所有层与后面层实现密集连接;
                2、DenseNet实现残差连接时,是通过在通道数上进行堆叠,而不是像ResNet那样实现元素级相加。
        下面是DenseNet的网络结构:
经典卷积神经网络之DenseNet
        我们可以看到DenseNet实现了一种更为激进的密集连接机制,也就是后面的每一层都会接受前面所有层作为输入。DenseNet的网络结构由两个部分所组成:DenseBlock+Transition。其中DenseBlock主要实现的是残差连接,Transition主要实现的是降低特征图的大小。因为DenseBlock中实现的是维度上的拼接,因此要求特征图大小必须一致,只能通过Transition来实现缩小特征图。
经典卷积神经网络之DenseNet
        由于DenseNet采用的是密集连接,导致后面的层会得到非常多的输入,从而导致计算难度增加,因此可以在DenseBlock中采用瓶颈结构来减少计算量,主要就是通过1×11\times1的卷积来降低特征图的维度,这种结构叫做DenseNet-B。
        其中Transition的结构为:BN+Relu+11Conv+22AvgPoolingBN+Relu+1*1Conv+2*2AvgPooling,这种结构叫做DenseNet-C
        使用了瓶颈结构的DenseBlock以及压缩系数小于1的Transition结构,这样的结构叫做DenseNet-BC