-
DenseNet学习笔记(核心与resnet进行对比):
- 概述:比resnet更优的cnn模型
- resnet:
- resnet可以训练出更深的cnn模型,实现更高的准确度,resnet模型的核心是通过建立前面层和后面层之间的“短路连接”,有助于训练过程中的反向传播,从而能训练出更深的cnn网络(可能主要是解决梯度消失问题)。
- resnet是每个层与前面的某层(一般还是2-3层)短路连接在一起,连接方式是通过元素级相加。
- densenet:
- 特色:在channel上的连接来实现特征重用。让densenet在参数和计算成本更少的情形下实现比resnet更优的性能。
- 连接机制:互相连接所有层,即每个层都接受其前面所有层作为其额外的输入。
- densenet中每个层和前面所有层在channel维度上连接,并且作为下一层的输入。
- densenet直接连接来自不同层的特征图,可以实现特征重用,提升效率
- cnn网络一般要经过pooling 或stride>1的卷积来降低特征图的大小,而densenet的密集连接方式需要特征图大小保持一致。所以densenet网络中使用denseblock+transition结构
- denseblock:
- 包含很多层的模块,每个层的特征图大小相同。层与层之间采用密集连接方式。denseblock中的非线性组合函数H(·)采用的是BN+Relu+3x3conv的结构。
- 所有denseblock中各个层卷积之后均输出k个特征图,即得到的特征图的channel数为k,或者说采用k个卷积核,k是一个超参数。一般情况下,使用较小的k(比如12),就可以得到较佳的性能。
- 由于后面层的输入会非常大,denseblock内部可以采用bottleneck层来减少计算量。具体实现:在原有结构中增加1X1conv
- transition模块:
- 是连接两个相邻的denseblock,并通过pooiling使特征图大小降低。
- 主要是连接两个相邻的denseblock,并降低特征图大小。包括一个1X1的卷积和2X2的平均池化。结构为BN+Relu+1X1conv+2X2 avgpooling,transition层可以起到压缩模型的作用。
- densenet比resnet更优的本质:resnet是以sum方式合并特征,这样就不能反推出原来的输入特征,而concat可以,所以concat方式在保持特征或还原特征方面有优势。
- densenet缺点:很占用显存
- 一个训练过程中的一个小tip:特征提取都是nan:nan是梯度暴涨或梯度消失,可以增大batch_size
-
相关阅读:
Wayfair EDI 850订单详解
计算机毕业设计 基于微信小程序的学习资料销售平台的设计与实现 Java实战项目 附源码+文档+视频讲解
Numpy:打开通往高效数值计算的大门
学到生无可恋之 Redis
抵押贷款巨头 Mr. Cooper 遭受网络攻击,影响 IT 系统
5. web信息收集(OWASP实战训练)
微信公众号-遇到的问题
Flutter dio Http请求之Cookie管理
操作系统课后习题
我的创作纪念日
-
原文地址:https://blog.csdn.net/weixin_45647721/article/details/125876335