版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhongqianli/article/details/86644365
《SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and < 0.5MB model size》提出了
名为SqueezeNet的轻量级CNN,达到AlexNet级别的精度,参数仅为AlexNet的1/50。采用Deep Compression模型压缩技术,将SqueezeNet压缩为不到0.5MB的模型。
1 SqueezeNet
1.1 CNN架构设计策略
- 用1x1conv替换3x3 conv。在减少参数数量的同时努力保留精度。
- 减少输入到3x3 conv的输入通道数量。在减少参数数量的努力同时保留精度。
- 在网络后面的地方下采样,可以让卷积层有大的激活map。作者认为大的激活map有更高的分类准确率。在参数数量约束下,最大化精度。
1.2 Fire module
由squeeze convolution layer (1x1 conv) 和 紧接其后的expand layer(由1x1conv和3x3conv按一定比例组成)按一定比例组成。
1.3 SqueezeNet架构
SqueezeNet以一个标准卷积层开始,随后接8个Fire module,以一个标准卷积层结束。作者从开始到结束逐渐增加滤波器的数量。SqueezeNet在conv1、fire4、fire8和conv10后面接stride为2的max-pooling。详情如下表所示:
1.4 实现
https://github.com/DeepScale/SqueezeNet
Q: 带有简单连接可以在不增加模型大小的情况下,提升若干百分点的精度,为什么github上的网络没有采用简单连接(残差连接)?计算量的原因?
2 其他相关
2.1 模型压缩
2.1.1 网络裁剪(Network Pruning)
先预先训练一个模型,然后将低于阈值的参数置为零,用于生成稀疏矩阵,最后在这个稀疏矩阵上进行一些迭代的训练。
2.1.2 深度压缩(Deep Compression)
将网络裁剪和量化(8位或更少)以及霍夫曼编码结合在一起,创造了一个叫做Deep Compression的方法