轻量级网络SqueezeNet
目录
论文
介绍
详解
SqueezeNet的压缩策略
Fire模块
SqueezeNet的网络架构
SqueezeNet性能
论文
SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
https://arxiv.org/abs/1602.07360 2016
介绍
从LeNet5到DenseNet,反应卷积网络的一个发展方向:提高精度。这里我们开始另外一个方向的介绍:在不大幅降低模型精度的前提下,最大程度的提高运算速度。
提高运算所读有两个可以调整的方向:
- 减少可学习参数的数量;
- 减少整个网络的计算量。
SqueezeNet正是诞生在这个环境下的一个精度的网络,它能够在ImageNet数据集上达到AlexNet近似的效果,但是参数比AlexNet少50倍
结合他们的模型压缩技术 Deep Compression,模型文件可比AlexNet小510倍。Deep Compression的论文地址:https://arxiv.org/abs/1510.00149
详解
SqueezeNet的压缩策略
1. 将 3*3 卷积替换成 1*1 卷积:通过这一步,一个卷积操作的参数数量减少了9倍;
2.减少 3*3 卷积的通道数:一个 3*3 卷积的计算量是 3*3*M*N(其中 M , N 分别是输入Feature Map和输出Feature Map的通道数),作者任务这样一个计算量过于庞大,因此希望将 M , N 减小以减少参数数量;
3. 将降采样后置:作者认为较大的Feature Map含有更多的信息,因此将降采样往分类层移动。注意这样的操作虽然会提升网络的精度,但是它有一个非常严重的缺点:即会增加网络的计算量。
Fire模块
Fire module输入的feature map为H*W*M的,输出的feature map为H*M*(e1+e3),可以看到feature map的分辨率是不变的,变的仅是维数,也就是通道数,这一点和VGG的思想一致。
首先,H*W*M的feature map经过Squeeze层,得到S1个feature map,这里的S1均是小于M的,以达到“压缩”的目的,详细思想可参考Google的Inception系列。
其次,H*W*S1的特征图输入到Expand层,分别经过1*1卷积层和3*3卷积层进行卷积,再将结果进行concat,得到Fire module的输出,为 H*M*(e1+e3)的feature map。
fire模块有三个可调参数:S1,e1,e3,分别代表卷积核的个数,同时也表示对应输出feature map的维数,在本文提出的SqueezeNet结构中,e1=e3=4s1 。
SqueezeNet的网络架构
网络结构设计思想,同样与VGG的类似,堆叠的使用卷积操作,只不过这里堆叠的使用本文提出的Fire module
SqueezeNet的几个实现,左侧是不加short-cut的SqueezeNet,中间是加了short-cut的,右侧是short-cut跨有不同Feature Map个数的卷积的。还有一些细节图3中并没有体现出来:
- 激活函数默认都使用ReLU;
- fire9之后接了一个rate为0.5的dropout;
- 使用same卷积。
SqueezeNet性能
从网络结构来看,SqueezeNet也算是设计精良了,但是最终性能还是要实验说话。论文作者将SqueezeNet与AlexNet在ImageNet上做了对比,值得注意的是,不仅对比了基础模型之间的差异,还对比了模型压缩的性能,其中模型压缩主要采用的技术有SVD,网络剪枝(network pruning)和量化(quantization)等。
具体的对比结果如下图所示。首先看一下基准模型的性能对比,SqueezeNet的Top-1优于AlexNet,Top-5性能一样,但是最重要的模型大小降低了50倍,从240MB->4.8MB,这个提升是非常有价值的,因为这个大小意味着有可能部署在移动端。
作者并没有止于此,而是继续进行了模型压缩。其中SVD就是奇异值分解,而所谓的网络剪枝就是在weight中设置一个阈值,低于这个阈值就设为0,从而将weight变成系数矩阵,可以采用比较高效的稀疏存储方式,进而降低模型大小。值得一提的Deep Compression技术,这个也是Han等提出的深度模型压缩技术,其包括网络剪枝,权重共享以及Huffman编码技术。
这里简单说一下权重共享,其实就是对一个weight进行聚类,比如采用k-means分为256类,那么对这个weight只需要存储256个值就可以了,然后可以采用8 bit存储类别索引,其中用到了codebook来实现。关于Deep Compression详细技术可以参考上文中给出的Deep Compression论文。从下图中可以看到采用6 bit的压缩,SqueezeNet模型大小降到了0.47MB,这已经降低了510倍,而性能还保持不变。为了实现硬件加速,Han等还设计了特定的硬件来高效实现这种压缩后的模型,具体参考论文(https://arxiv.org/abs/1602.01528)。顺便说过题外话就是模型压缩还可以采用量化(quantization),说白了就是对参数降低位数,比如从float32变成int8,这样是有道理,因为训练时采用高位浮点是为了梯度计算,而真正做inference时也许并不需要这么高位的浮点,TensorFlow中是提供了量化工具的,采用更低位的存储不仅降低模型大小,还可以结合特定硬件做inference加速。
和AlexNet对比的结果:
除了上面的工作,作者还探索了网络的设计空间,包括微观结构和宏观结构,微观结构包括各个卷积层的维度等设置,宏观结构比如引入ResNet的短路连接机制
参考:SqueezeNet详解 - 知乎
CNN模型之SqueezeNet - 知乎
轻量级网络SqueezeNet相关推荐
- 【论文】轻量级网络squeezenet论文的详细翻译
前言: 整体上翻译了squeezenet:AlexNet-level accuracy with 50X fewer paramenters and 0.5MB model size.这篇论文,便于英 ...
- 【目标检测】轻量级网络SqueezeNet
文章目录 一. SqueezeNet:压缩再扩展 1.1 介绍 1.2 相关工作 1.2.1 模型压缩 1.2.2 CNN 微/宏 架构 1.3 SqueezeNet 1.3.1 设计策略 1.3.2 ...
- 轻量级网络SqueezeNet学习笔记
目录 论文 介绍 详解 SqueezeNet的压缩策略 Fire模块 SqueezeNet的网络架构 SqueezeNet性能 论文 SqueezeNet: AlexNet-level accurac ...
- 14种轻量级网络综述 — 主干网络篇
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨VincentLee 来源丨晓飞的算法工程笔记 编辑丨极市平台 导读 早期的卷积神经很少考虑参数 ...
- 轻量级网络综述 — 主干网络篇
点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 轻量级网络的核心是在尽量保持精度的前提下,从体积和速度两方面对网络进行轻量化改造,本文对轻量级网络进 ...
- 轻量级网络--ShuffleNet论文解读
ShuffleNet ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 原文地址: ...
- 『高性能模型』轻量级网络梳理
墙裂推荐:那些Network能work的本质究竟是啥? SqueezeNet 轻量化网络:SqueezeNet 2017年的文章,和后面的几篇文章一对比思路显得比较老套:大量的1*1的卷积和少量的3* ...
- 华为轻量级网络架构,幽灵网络(GhostNets)再升级——附源码下载
关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 论文地址:https://arxiv.org/pdf/2201.03297.p ...
- (四十七)论文阅读 | 轻量级网络之MobileNetV3
简介 图1:论文原文 该论文基于神经架构搜索技术提出下一代轻量级网络结构, M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3,实验结果表明该模型在 ...
最新文章
- Vuex 的应用场景
- python之simplejson,Python版的简单、 快速、 可扩展 JSON 编码器/解码器
- python教程:有参装饰器
- 使用jenkins进行项目的自动构建部署
- python scikit库
- 51单片机入门——LCD1602
- 提取mkv文件中的字幕
- 中介效应、调节效应与交互作用咋回事?
- Kanban in Action 免积分下载
- Scratch精通之侦测的使用
- css空心图形,css画空心箭头
- xDM Land Patterns 封装工具使用笔记
- matlab中cond为啥比bet好,关于dpabi中bet步骤
- isBlank与isEmpty的区别
- xp运行linux软件下载,为你演示xp系统利用U盘直接运行Linux软件 的解决方案
- 时间序列的数据分析(六):指数平滑预测法
- 鸿蒙相符合的图片,鸿蒙操作系统亮相——目标是未来的物联网
- office365 ppt创意方法(3d模型)
- 服务器2003蓝屏A5修复,重装Win7系统开机蓝屏错误代码0X000000a5的修复方案
- English学习网站
热门文章
- PHP获取git提交信意_FakeGit:一个自欺欺人的好玩意
- 未来世界的超级计算机,中国超级计算机被超越了?美帝造史上最快电脑!
- 票据打印机-蓝牙的开关
- 福建厦门双十计算机竞赛,五大学科竞赛获奖名单公布 厦门两名学生保送清华北大...
- 三四月份面试阿里+腾讯IEG,有一些心得分享给大家(Java岗)
- RewriteCond 重写规则执行条件
- ss5 mysql radius_SS5+MYSQL
- java 递归终止_java中执行程序如何终止递归?
- F5服务器负载均衡原理
- 测试报告要求内容(标准)