squeezenet模型参数降低50倍,压缩461倍

deep_learninger deep_learninger     2022-12-04     408

关键词:

DenseNet

CNN网络从Lenet,Alexnet,Googlenet,VGG,Deep Residual LearningFractalNet,DenseNet 。网络越来越深,越来越宽。参数越来越大。12G的显存都不够。在保存精度的同时,尽量减少参数很重要。这里有很多方法,模型剪枝等,这里从网络设计上介绍。


本文讲一下最新由UC Berkeley和Stanford研究人员一起完成的SqueezeNet[1]网络结构和设计思想。SqueezeNet设计目标不是为了得到最佳的CNN识别精度,而是希望简化网络复杂度,同时达到public网络的识别精度。所以SqueezeNet主要是为了降低CNN模型参数数量而设计的。OK,下面直奔主题了。

设计原则

(1)替换3x3的卷积kernel为1x1的卷积kernel

卷积模板的选择,从12年的AlexNet模型一路发展到2015年底Deep Residual Learning模型,基本上卷积大小都选择在3x3了,因为其有效性,以及设计简洁性。本文替换3x3的卷积kernel为1x1的卷积kernel可以让参数缩小9X。但是为了不影响识别精度,并不是全部替换,而是一部分用3x3,一部分用1x1。具体可以看后面的模块结构图。

(2)减少输入3x3卷积的input feature map数量 
如果是conv1-conv2这样的直连,那么实际上是没有办法减少conv2的input feature map数量的。所以作者巧妙地把原本一层conv分解为两层,并且封装为一个Fire Module。

(3)减少pooling 
这个观点在很多其他工作中都已经有体现了,比如GoogleNet以及Deep Residual Learning。

Fire Module

Fire Module是本文的核心构件,思想非常简单,就是将原来简单的一层conv层变成两层:squeeze层+expand层,各自带上Relu激活层。在squeeze层里面全是1x1的卷积kernel,数量记为S11;在expand层里面有1x1和3x3的卷积kernel,数量分别记为E11和E33,要求S11 < (E11+E33)即满足上面的设计原则(2)。expand层之后将1x1和3x3的卷积output feature maps在channel维度拼接起来。

总体网络架构

直接上图说(左边的狗狗很忧伤啊): 

看图就很明朗了,总共有9层fire module,中间穿插一些max pooling,最后是global avg pooling代替了fc层(参数大大减少)。在开始和最后还有两层最简单的单层conv层,保证输入输出大小可掌握。

下图是更详细的说明:非常清楚,就不再啰嗦了。 

实验结果

主要在imagenet数据上比较了alexnet,可以看到准确率差不多的情况下,squeezeNet模型参数数量显著降低了(下表倒数第三行),参数减少50X;如果再加上deep compression技术,压缩比可以达到461X!还是不错的结果。不过有一点,用deep compression[2]是有解压的代价的,所以计算上会增加一些开销。

思考

SqueezeNet之前我就在研究如果降低网络规模,SqueezeNet印证了小得多的网络也可以到达很好的CNN识别精度。相信以后会出现更多小网络,做到state-of-the-art的精度。好,本篇就介绍到这里,希望对大家有启发,有的话请支持一下我博客哈!~谢谢!

参考资料

[1] SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size,2016 
[2] Deep compression: Compressing DNNs with pruning, trained quantization and huffman coding, 2015


轻量化卷积神经网络模型总结bywilson(shfflenet,moblienet,squeezenet+xception)

...络    https://zhuanlan.zhihu.com/p/32746221  1,SqueezeNet:    SqueezeNet对比AlexNet能够减少50倍的网络参数,但是却拥有相近的性能。SqueezeNet主要强调用1x1的卷积核进行featuremap个数的压缩,从而达到大量减少网络参数... 查看详情

29.深度学习模型压缩方法-3

...计算消耗;一般可以压缩2-3倍;精度几乎没有损失;缺点模型越复杂,权重矩阵越大,利用低秩近似重构参数矩阵不能保证模型的性能;超参数的数量随着网络层数的增加呈线性 查看详情

超轻量级网络squeezenet网络解读

SqueezeNet网络模型非常小,但分类精度接近AlexNet。 这里复习一下卷积层参数的计算输入通道ci,核尺寸k,输出通道co,参数个数为:以AlexNet第一个卷积为例,参数量达到:3*11*11*96=34848 基础模块 包含三个卷积层(蓝色... 查看详情

两行代码自动压缩vit模型!模型体积减小3.9倍,推理加速7.1倍

Transformer模型及其变体,因其更优的注意力机制能力和长时依赖等特性,已成为自然语言处理(NLP)、语音识别(ASR)、计算机视觉(CV)等领域的主流序列建模结构。根据PaperWithCode网站ObjectDetectiononCOCOtest-dev专栏数据,检测... 查看详情

MobileNet vs SqueezeNet vs ResNet50 vs Inception v3 vs VGG16

】MobileNetvsSqueezeNetvsResNet50vsInceptionv3vsVGG16【英文标题】:【发布时间】:2018-02-2114:06:54【问题描述】:我最近一直在考虑将面向iOS开发人员的机器学习版本与我的应用相结合。由于这是我第一次使用任何与ML相关的东西,当我开... 查看详情

pytorch实现squeezenet的fire模块(代码片段)

问题SqueezeNet是一款非常经典的CV网络,其设计理念对后续的很多网络都有非常强的指导意义,其核心思想包括:使用1x1卷积核替代3x3,主要原因是3x3的卷积核参数量是1x1的9倍多;降低3x3卷积核的通道数量;... 查看详情

pytorch实现squeezenet的fire模块(代码片段)

问题SqueezeNet是一款非常经典的CV网络,其设计理念对后续的很多网络都有非常强的指导意义,其核心思想包括:使用1x1卷积核替代3x3,主要原因是3x3的卷积核参数量是1x1的9倍多;降低3x3卷积核的通道数量;... 查看详情

解密万亿参数m6模型预训练背后的分布式框架whale

...云PAI团队和达摩院智能计算实验室一起发布“低碳版”巨模型M6,大幅降低万亿参数超大模型训练能耗。借助我们自研的Whale框架仅使用480卡GPU,即训练出了规模达人类神经元10倍的万亿参数多模态大模型M6,与传统海... 查看详情

基于yolo的手部检测和计数实现(课程设计,训练测试+模型剪枝+模型压缩)

用YOLOv3模型在一个开源的人手检测数据集上做人手检测,并在此基础上做模型剪枝。对于该数据集,对YOLOv3进行channelpruning之后,模型的参数量、模型大小减少80%,FLOPs降低70%,前向推断的速度可以达到原来的200%,同时可以保持m... 查看详情

使用超网格搜索和 10 倍 CV 调整参数后,随机森林模型的 AUC 较低

】使用超网格搜索和10倍CV调整参数后,随机森林模型的AUC较低【英文标题】:AUCofRandomforestmodelisloweraftertuningparametersusinghypergridsearchandCVwith10folds【发布时间】:2019-05-1112:58:48【问题描述】:我在未调整超参数的情况下收到的AUC值... 查看详情

cvpr2021首次!王言治教授和色拉布团队把gan压缩22倍,性能比原始模型还高

...#xff0c;还在远低于原始计算量的条件下,获得来比原有模型更好的性 查看详情

cvpr2021首次!王言治教授和色拉布团队把gan压缩22倍,性能比原始模型还高

...#xff0c;还在远低于原始计算量的条件下,获得来比原有模型更好的性 查看详情

加载pytorch中的预训练模型及部分结构的导入(代码片段)

...odelsresnet18=models.resnet18()alexnet=models.alexnet()vgg16=models.vgg16()squeezenet=models.squeezenet1_0()densenet=models.densenet161()inception=models.inception_v3()googlenet=models.googlenet()shufflenet=models.shufflenet_v2_x1_0()mobilenet=models.mobilenet_v2()resnext50_32x4d=models.resnext50_32... 查看详情

gpu加速pinterest推荐模型,参数量增加100倍,用户活跃度提高16%

...,Pinterest首页展示给用户的图片也离不开背后的推荐模型。近期,其工程团队通过将机器学习服务从CPU转移到GPU上,使得Pinterest可以上线比之前大100倍的推荐模型。上线大模型给模型质量带来了阶跃式的提升,最... 查看详情

深度学习模型压缩

模型压缩对于复杂问题建模时,深度学习模型在容纳更多参数的情况下,效果一般更好,但是模型占内存大,预测时间长的,往往限制其在小型或普通配制的硬件上使用。一般使用模型压缩方法给模型减肥,主要方法总结如下。... 查看详情

知识蒸馏irg算法实战:使用resnet50蒸馏resnet18(代码片段)

文章目录摘要最终结论模型ResNet18,ResNet34RseNet50、RseNet101、RseNet152数据准备训练Teacher模型步骤导入需要的库定义训练和验证函数定义全局参数图像预处理与增强读取数据设置模型和Loss学生网络步骤导入需要的库定义训练和... 查看详情

模型压缩-剪枝算法详解(代码片段)

一,前言学术界的SOTA模型在落地部署到工业界应用到过程中,通常是要面临着低延迟(Latency)、高吞吐(Throughpout)、高效率(Efficiency)挑战的。而模型压缩算法可以将一个庞大而复杂的预训练模型转化为一个精简的小模型,... 查看详情

深度网络模型压缩综述

深度网络模型压缩综述文献来源:雷杰,高鑫,宋杰,王兴路,宋明黎.深度网络模型压缩综述[J].软件学报,2018,29(02):251-266.摘要:深度网络近年来在计算机视觉任务上不断刷新传统模型的性能,已逐渐成为研究热点.深度模型尽管性能强大... 查看详情