-
纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception
实现轻量化技巧
轻量化主要得益于 depth-wise convolution,解决「信息流通不畅」的问题,MobileNet 采用了 point-wise convolution,ShuffleNet 采用的是 channel shuffle。MobileNet 相较于 ShuffleNet 使用了更多的卷积,计算量和参数量上是劣势,但是增加了非线性层数,理论上特征更抽象,更高级了;ShuffleNet 则省去 point-wise convolution,采用 channel shuffle,简单明了,省去卷积步骤,减少了参数量。
MobileNet v1: 将普通卷积分解为depthwise separable Conv和pointwise Conv
讲的很清楚的一篇CSDN博客:MobileNet原理+手写python代码实现
博客里面有两张图展示的非常清楚,但是copy不过来,点到原文查看吧。
[图片上传失败...(image-185766-1532417276307)]
[图片上传失败...(image-3acbaa-1532417276307)]
MobileNet V2: 为顺利在v1基础上引入shortcut,采用扩张-Conv-收缩+linear bottlenecks的block
讲的很清楚的CSDN博客:轻量化网络:MobileNet-V2
[图片上传失败...(image-daef46-1532417392207)]
知乎专栏介绍
ShuffleNet V1: pointwise group conv 和channel shuffle。(后者是为了改善前者的信息流通不畅问题)
ShuffleNet V2:
网络复杂度分析
-
时间复杂度(决定模型训练&推断的时间)
用模型的浮点运算次数(FLOPs, floating-point operations)来衡量,一次浮点运算可定义为一次乘法和一次加法。 -
空间复杂度(决定模型参数数量)
只与卷积核的尺寸K*K, 通道数 C_in,C_out网络的深度D有关,跟图像大小无关。
参数越多,训练所需的数据越大,而实际中往往是小数据,容易过拟合。
科普帖:深度学习中GPU和显存分析 - 陈云的文章 - 知乎
其它资料
GPU组前三名都采用YOLO-v2作为baseline
Paper list
- Rethinking Numerical Representations for Deep Neural Networks (arxiv)
Floating-point表示比fixed-point表示更有效。为DNN引入定制化精度,能在损失不到1%精度的情况下平均获得7.6倍的加速。
网友评论