- 论文:https://arxiv.org/abs/1602.07360
- github: https://github.com/forresti/SqueezeNet
简介:
- SqueezeNet是一个经典分类模型, 主要特点是模型参数量少, 在Imagenet上精度和AlexNet差不多,模型大小是AlexNet的 1 50 \frac{1}{50} 501 之一左右,压缩后可以小于0.5M。
- SqueezeNet主要提出Fire模块,可以有效减少参数量。
Method
- SqueezeNet主要从卷积核大小、
3
×
3
3\times3
3×3卷积输入通道大小两方面减少参数量,优化下采样方法最大化精度。
- 1 × 1 1\times1 1×1 卷积核可以减少计算量,相对 3 × 3 3\times 3 3×3卷积核,减少9倍的参数量
- 减少 3 × 3 3\times 3 3×3卷积输入通道,可以减少计算量
- 通过延迟下采样,作者认为大的feature map有利于提升分类精度。
Fire Module
- Filre module由两部分组成:1) sequeeze layer 2) expand layer
- sequeeze layer主要由 1 × 1 1\times1 1×1卷积输出feature map, 对应method中第一点。
- expand layer 由 1 × 1 1\times1 1×1 和 3 × 3 3\times3 3×3卷积组合成,两种卷积核输出结果concat做为输出,这样可以有效减少计算量, 对应method中第二点。
Model
- 模型分为三种, 基础模型最左边,由2个conv,9个fire module, 3个max pool模块组成。中间和最右边一个主要是加入残差块。
实验
- 参数表
- SequeezeNet 基础模型大小为4.3M
- 不同通道ratio和expand layer中 3 × 3 3\times3 3×3卷积数目比例在imagenet上分类精度。可以看出1.0ratio和37.5时精度最大。 3 × 3 3\times3 3×3卷积核数目所占比例上升导致模型变大,但是到37.5时候就不影响精度。
- 3个不同SequeezeNet在imagenet上分类精度,可以看出网络2精度最大。top-1达到60.4%,模块大小维持不变。
总结
- SequeezeNet参数量是AlexNet 1 50 \frac{1}{50} 501且在imagenet上维持相等精度,对模型进行压缩可以达小于0.5M(6bit),适用于FPGA和对内存要求小的计算设备,可以适用于目标检测、自动驾驶等领域。