• DenseNet学习笔记(核心与resnet进行对比):


    1. 概述:比resnet更优的cnn模型
    2. resnet:
      1. resnet可以训练出更深的cnn模型,实现更高的准确度,resnet模型的核心是通过建立前面层和后面层之间的“短路连接”,有助于训练过程中的反向传播,从而能训练出更深的cnn网络(可能主要是解决梯度消失问题)。
      2. resnet是每个层与前面的某层(一般还是2-3层)短路连接在一起,连接方式是通过元素级相加。
    3. densenet:
      1. 特色:在channel上的连接来实现特征重用。让densenet在参数和计算成本更少的情形下实现比resnet更优的性能。
      2. 连接机制:互相连接所有层,即每个层都接受其前面所有层作为其额外的输入。
      3. densenet中每个层和前面所有层在channel维度上连接,并且作为下一层的输入。
      4. densenet直接连接来自不同层的特征图,可以实现特征重用,提升效率
      5. cnn网络一般要经过pooling 或stride>1的卷积来降低特征图的大小,而densenet的密集连接方式需要特征图大小保持一致。所以densenet网络中使用denseblock+transition结构
        1. denseblock:
          1. 包含很多层的模块,每个层的特征图大小相同。层与层之间采用密集连接方式。denseblock中的非线性组合函数H(·)采用的是BN+Relu+3x3conv的结构。
          2. 所有denseblock中各个层卷积之后均输出k个特征图,即得到的特征图的channel数为k,或者说采用k个卷积核,k是一个超参数。一般情况下,使用较小的k(比如12),就可以得到较佳的性能。
          3. 由于后面层的输入会非常大,denseblock内部可以采用bottleneck层来减少计算量。具体实现:在原有结构中增加1X1conv
        2. transition模块:
          1. 是连接两个相邻的denseblock,并通过pooiling使特征图大小降低。
          2. 主要是连接两个相邻的denseblock,并降低特征图大小。包括一个1X1的卷积和2X2的平均池化。结构为BN+Relu+1X1conv+2X2 avgpooling,transition层可以起到压缩模型的作用。
      6. densenet比resnet更优的本质:resnet是以sum方式合并特征,这样就不能反推出原来的输入特征,而concat可以,所以concat方式在保持特征或还原特征方面有优势。
    4. densenet缺点:很占用显存
    5. 一个训练过程中的一个小tip:特征提取都是nan:nan是梯度暴涨或梯度消失,可以增大batch_size
  • 相关阅读:
    【Linux】基础IO —— 缓冲区深度剖析
    秸秆开启黑土地绿色低碳循环经济链 国稻种芯绿色沃土计划
    Windows 进程的创建和终止
    我国首个桌面操作系统开发者平台 openKylin 正式发布
    安全-js的bind方法
    2023备战秋招Java面试八股文合集
    Apache ActiveMQ RCE漏洞复现(CNVD-2023-69477)
    用 Python 开发的 PDF 抽取Excel表格 2.0版
    dotnet 6 使用 string.Create 提升字符串创建和拼接性能
    vue3前端调用后端接口实现批量删除
  • 原文地址:https://blog.csdn.net/weixin_45647721/article/details/125876335