DenseNet
来源:互联网 发布:物流软件定制开发 编辑:程序博客网 时间:2024/05/16 17:05
2017CVPR Best Paper: 《Densely Connected Convolutional Networks》
Github项目主页: https://github.com/liuzhuang13/DenseNet
知乎上的一些讨论: 如何评价Densely Connected Convolutional Networks?
DenseNet的高效版本,解决训练占用显存大的问题: 《Memory-Efficient Implementation of DenseNets》
DenseNet属于对ResNet扩展的一系列工作中比较有代表性的一个。
1. 方法介绍
DenseNet整个网络采用了模块化设计,其中一个典型网络模块结构如下:
如上图,该模块共包含4层(BN+ReLU+Conv)。每一层都有一个“短路”或者“跳接”与其后的每一层相连。因此,4层实际上总共产生4+3+2+1=10个连接。
上述结构带来的优点主要有:
- 加强了信息前传,避免了梯度的反传消失
- 加强了对特征的多级综合高效利用
- 一定程度上可以使用更少的参数数量来达到相同的效果
2. DenseNet vs. ResNet
如果在Netscope这一网络结构可视化平台将DenseNet和ResNet分别进行可视化,你会发现二者的网络结构 “看起来几乎一样”。
这时候你有可能会有疑问:
- 为啥DenseNet和ResNet这么像?
- DenseNet那么多“跳接”去哪了?
解决上面的疑问,请看下面DenseNet和ResNet的对比:
(1)DenseNet采用Concat层来整合不同来源的特征,而ResNet则采用Eltwise层的加法操作。
DenseNet大部分的优势都是Concat层带来的:
- Concat层只是特征拼接,不对特征做任何改变。因此,只需相邻层的一个“短接”,后续所有层都可以拥有到该层的“通路”。 这些通路意味着更佳的信息前传与梯度反传。
- Concat层会使得feature map “变厚”,因此即使我们使用更少的卷积参数,feature map也不会因过小而产生信息瓶颈。这也是DenseNet一定程度上参数更少的原因。
(2)DenseNet采用transition层(BN+1x1卷积+2x2AvePooling)来实现下采样,而ResNet则多采用MaxPooling以及卷积的stride。
(3)DenseNet由于在一个模块中要使用Concat,因此feature map的大小必须保持不变。 而ResNet则会存在下面的这种下采样的特殊情况:
- DenseNet
- DenseNet
- DenseNet
- DenseNet模型
- DenseNet-caffe
- ResNet && DenseNet
- DenseNet 简介
- DenseNet 网络
- DenseNet结构
- DenseNet note
- FCN-DenseNet
- ResNet && DenseNet(原理篇)
- ResNet && DenseNet(实践篇)
- ResNet && DenseNet(原理篇)
- 我读DenseNet
- DenseNet算法详解
- CVPR2017 DenseNet, Refiner
- DenseNet的使用
- Android 自定义下拉刷新上拉加载更多Listview
- javaScript深入学习[3]
- 并查集(1)梳理
- 使用kaldi进行特征提取时的问题记录
- 欢迎使用CSDN-markdown编辑器
- DenseNet
- JedisPool工具类
- gdb等待进程启动后调试
- WPF 实现简单的跑马灯
- 1007. 素数对猜想 (20)
- 二维码的扩展
- caffe在编译时注意事项
- 为什么L1正则项会产生稀疏解
- Spring AOP中pointcut expression表达式解析