SqueezeNet: Alexnet-level accuracy whith 50x Fewer Parameters And < 0.5MB Model Size
2016-12-30 21:35
453 查看
SqueezeNet: Alexnet-level accuracy whith 50x Fewer Parameters And < 0.5MB Model Size
本篇博文主要是对之前看过的深度模型压缩论文的整理。本文在ICLR 2017 under review。论文作者:Forrest N. Iandola , Song Han, Matthew W. Moskewicz, Khalid Ashraf, William J. Dally, Kurt Keutzer其中Song Han的论文(Deep compression: Compressing DNNs with pruning, trained quantization and huffman coding.)在深度模型压缩上取得state-of-the-art。论文内容简介
本文提出了一种新的网络结构,作者将其成为SqueezeNet,该模型大小上远小于AlexNet为参数所占空间大约是AlexNet的50分之一,但其效果相对与AlexNet没有下降(在某些问题上略有提升)。此外该模型可以使用前面提到的Deep Compression方法继续压缩使其参数占用空间大小小于0.5MB( 其中压缩前约为4.8MB, ALexNet约为240MB)并且不损失精度(这个很赞,虽然AlexNet在ImageNet 数据集上已经被远远的抛在后面)。小模型的优势
提高分布式训练的效率,深度模型进行训练时参数数量与机器间通信成正比,参数越少训练时间可越短便于客户端更新,这个优势显而易见,对手机等移动设备来说这个优势很大。
利于嵌入式部署(FPGA),FPGA通常有较小的存储空间
设计策略
使用更小的卷积核。深度模型卷集成共享卷积核,卷积核越小参数显然越少。减少channel 数,这个也是很明显的
推迟下采样,作者认为推迟下采用可以获得large activation map这样能够使得模型不需要那么“深”。
网络结构
Fire ModuleSqueezeNet 之所以参数很少,就在于作者自行设计了Fire Module,其实就是两层连在一起成为一个模块。
前面提到过的设计策略中第一条就是使用更小的卷积核,因此在Fire Module中包含的第一层就是采用1*1卷积核,作者称该层为压缩层(squeeze layer) 紧跟压缩层的时作者称为拓展层(expand layer)该层包含两种卷积核,1*1卷积核以及3*3卷积核,该层将不同卷积核的产生的特征图合并输出。
简单来说,Fire Module = Squeeze layer + expand layer。
对于深度模型来说,所谓的模型结构很大程度上指的是卷积层(FC层)的数量以及卷积核的大小和数目和FC层连接情况。对应与Fire Module,我们关心的时压缩层卷积核的数量以及拓展层两种卷积核的比例,关于这个作者做了实验进行测试,稍后再讲,下面先说一下squeezeNet的整体网络结构。
模型整体结构
SqueezeNet 包含两个卷积层,9个FireModule和3个下采样层 。其中输入数据大小为224*224*3,第一层为卷积层采用96个大小为7*7的卷积核步长为2,紧跟着一个下采用层使用maxpool 大小为3*3步长为2,然后是3个fire module,再然后是下采样层,4个Fire Module,下采样层maxpool,再跟一个Fire Module,一个卷积层,最后一层是下采样层使用avaverge pool。值得注意的是SqueezeNet没有全连接层这也是它模型能够如此之小的原因,在深度模型中卷积层因为卷积核共享相比与全连接层(FC层)有更少的参数,但卷积层占大量的计算。
模型评估及探索
由于之前关于模型压缩的论文大都集中于ALexNet上,本文作者也使用AlexNet作为评估的baseline,具体见下表:
SR: squeeze ration,squeeze层filter的数目与expand层layer数目之比
总结
这篇文章中作者提出一种新的网络结构称为squeezeNet,相比于AlexNet其参数更少,并且保证模型性能与AlexNet相当。此外通通过使用deep compression 的方法,能够对模型进一步进行压缩,并且不损失精度。
-
第一次写博客,如有不足之处敬请指正。
相关文章推荐
- 论文阅读之SequeezeNet:AlexNet-level accuracy with 50x fewer parameters and<0.5MB model size
- 笔记:SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size
- SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size阅读笔记
- SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
- 【SqueezeNet】SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
- 论文笔记——SQUEEZENET ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE
- SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size阅读笔记
- Squeezenet alexnet-level accuracy with 50x fewer parameters and less 0.5MB model size
- Csharp: Calling Output Parameters and Return Values in ADO.NET
- 海洋工作室——网站建设专家:Creating Multi-Level Navigational Menu with the ASP.NET Repeater Control and CSS Styles
- Sprinig.net 双向绑定 Bidirectional data binding and data model management 和 UpdatePanel
- ASP.NET MVC 3: Razor’s @: and <text> syntax
- ASP.NET Internals – IIS and the Process Model (IIS5, IIS6)
- HTML5, jQuery Mobile and ASP.NET MVC 4 – Using the ViewModel between the model and controller
- Csharp: Calling Output Parameters and Return Values in ADO.NET
- 【转】ASP.NET MVC 3: Razor’s @: and <text> syntax
- ASP.NET Internals – IIS and the Process Model
- ASP.NET MVC 3: Razor’s @: and <text> syntax
- TableView出错:Either the tableModel parameter or both source and columns parameters must be specified by component.....