轻量级网络ShuffleNet v1

ShuffleNet算法详解 论文:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 论文链接:https://arxiv.org/abs/1707.01083算法详解: ShuffleNet是Face++的一篇关于降低深度网络计算量的论文,号称是可以在移动设备上运行的深度网络。这篇文章可以和MobileNet 阅读详情

ShuffleNet paper

ShuffleNet是旷视科技提出的一种计算高效的CNN模型,其和MobileNet和SqueezeNet等一样主要是想应用在移动端。所以,ShuffleNet的设计目标也是如何利用有限的计算资源来达到最好的模型精度,这需要很好地在速度和精度之间做平衡。ShuffleNet的核心是采用了两种操作:pointwise group convolution和channel shuffle,这在保持精度的同时大大降低了模型的计算量。目前移动端CNN模型主要设计思路主要是两个方面:模型结构设计和模型压缩。ShuffleNet和MobileNet一样属于前者,都是通过设计更高效的网络结构来实现模型变小和变快,而不是对一个训练好的大模型做压缩或者迁移。

Group convolution

谈论起MoblieNet/ShuffleNet这些网络结构,就绕不开Group convolution,甚至可以认为这些网络结构只是Group convolution的变形而已。那么什么是Group convolution?

 

 

ResNet bottlenect结构

这里简单介绍一下ResNet的bottleneck网络结构。注意Channel维度变化: 256D>>64D>>256D ,宛如一个中间细两端粗的瓶颈,所以称为“bottleneck”。这种结构相比VGG,早已经被证明是非常效的,能够更好的提取图像特征。

下图展示了ShuffleNet的结构,其中(a)就是加入Depthwise的ResNet bottleneck结构,而(b)和(c)是加入Group convolution和Channel Shuffle的ShuffleNet的结构。

ShuffleNet的基本单元是在一个残差单元的基础上改进而成的。如图a所示,这是一个包含3层的残差单元:首先是1x1卷积,然后是3x3的depthwise convolution(DWConv,主要是为了降低计算量),这里的3x3卷积是瓶颈层(bottleneck),紧接着是1x1卷积,最后是一个短路连接,将输入直接加到输出上。现在,进行如下的改进:将密集的1x1卷积替换成1x1的group convolution,不过在第一个1x1卷积之后增加了一个channel shuffle操作。值得注意的是3x3卷积后面没有增加channel shuffle,按paper的意思,对于这样一个残差单元,一个channel shuffle操作是足够了。还有就是3x3的depthwise convolution之后没有使用ReLU激活函数。改进之后如图b所示。对于残差单元,如果stride=1时,此时输入与输出shape一致可以直接相加,而当stride=2时,通道数增加,而特征图大小减小,此时输入与输出不匹配。一般情况下可以采用一个1x1卷积将输入映射成和输出一样的shape。但是在ShuffleNet中,却采用了不一样的策略,如图c所示:对原输入采用stride=2的3x3 avg pool,这样得到和输出一样大小的特征图,然后将得到特征图与输出进行连接(concat),而不是相加。这样做的目的主要是降低计算量与参数大小。

那么ShuffleNet为何要这样做?既然是轻量化网络,我们还是来算算计算量。

相比原始加入Depthwise的ResNet缩小了很多的计算量。所以ShuffleNet相当于保留ResNet结构,同时又压低计算量的改进版。这里解释下为何要做Channel Shuffle操作:

ShuffleNet的本质是将卷积运算限制在每个Group内,这样模型的计算量取得了显著的下降。然而导致模型的信息流限制在各个Group内,组与组之间没有信息交换,如图15,这会影响模型的表示能力。因此,需要引入组间信息交换的机制,即Channel Shuffle操作。同时Channel Shuffle是可导的,可以实现end-to-end一次性训练网络。

group convolution存在一个弊端,如图a所示,其中GConv是group convolution,这里分组数是3。可以看到当堆积GConv层后一个问题是不同组之间的特征图是不通信的,这就好像分了三个互不相干的路,大家各走各的,这目测会降低网络的特征提取能力。这样你也可以理解为什么Xception,MobileNet等网络采用密集的1x1卷积,因为要保证group convolution之后不同组的特征图之间的信息交流。但是达到上面那个目的,我们不一定非要采用dense pointwise convolution。

如图b所示,你可以对group convolution之后的特征图进行“重组”,这样可以保证接下了采用的group convolution其输入来自不同的组,因此信息可以在不同组之间流转。这个操作等价于图c,即group convolution之后对channels进行shuffle,但并不是随机的,其实是“均匀地打乱”。在程序上实现channel shuffle是非常容易的:假定将输入层分为g组,总通道数为gxn ,首先你将通道那个维度拆分为(g,n)两个维度,然后将这两个维度转置变成(n,g),最后重新reshape成一个维度。如果你不太理解这个操作,你可以试着动手去试一下,发现仅需要简单的维度操作和转置就可以实现均匀的shuffle。利用channel shuffle就可以充分发挥group convolution的优点,而避免其缺点。

当然,ShuffleNet有2个重要缺点:

  1. Shuffle channel在实现的时候需要大量的指针跳转和Memory set,这本身就是极其耗时的;同时又特别依赖实现细节,导致实际运行速度不会那么理想。
  2. Shuffle channel规则是人工设计出来的,不是网络自己学出来的。这不符合网络通过负反馈自动学习特征的基本原则,又陷入人工设计特征的老路(如sift/HOG等)。




链接:https://www.jianshu.com/p/29f4ec483b96
来源:简书
 

24、轻量级卷积神经网络:SqueezeNet与ShuffleNet v1解析 本文详细解析了两种轻量级卷积神经网络——SqueezeNet和ShuffleNet v1的设计原理与实现方式。SqueezeNet通过独特的分类器设计和旁路连接,在减少模型大小和计算复杂度的同时提升了准确率;ShuffleNet v1则通过逐点分组卷积和通道洗牌操作,在不增加计算负担的情况下增强了特征提取能力。文章包含代码实现示例、架构对比、应用场景分析以及未来发展趋势展望,适合对轻量级深度学习模型感兴趣的开发者和研究人员。 阅读详情

相关推荐

简单有趣的轻量级网络 Shufflenet v1 、Shufflenet v2(可以直接替换自己数据集)-直接放置自己的数据集就能跑(网络结构详解+详细注释代码+核心思想讲解)——pytorch实现

这期博客咱们来学习一下Shufflenet系列轻量级卷积神经网络,Shufflenet v1 、Shufflenet v2。首先学习一下,Shufflenet v1网络:论文下载链接:Shufflene系列轻量级卷积神经网络由旷世提出,也是非常有趣的轻量级卷积神经网络,它提出了通道混合的概念,改善了分组卷积存在的问题,加强各组卷积之间的特征交互和信息交流,在改善模型的特征提取方式的同时,增强特征提取的全面性,如下图所示: 当然上面说的很抽象,图像也很抽象,具体的实现过程如下图所示:

爱吃橘子的小翟 1753

ShuffleNet paper笔记(附shuffle代码)

shufflenet 笔记

蓝羽飞鸟的博客 724

42.常用的轻量级网络——ShuffleNet-v1

大数据视频推荐: 网易云课堂 优快云 人工智能算法竞赛实战 AIops智能运维机器学习算法实战 ELK7 stack开发运维实战 PySpark机器学习从入门到精通 AIOps智能运维实战 腾讯课堂 大数据语音推荐: ELK7 stack开发运维 企业级大数据技术应用 大数据机器学习案例之推荐系统 自然语言处理 大数据基础 人工智能:深度学习入门到精通

大勇若怯任卷舒 483

轻量级网络--ShuffleNet论文解读

ShuffleNet ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 原文地址: ShuffleNet 代码: - TensorFlow - Caffe Abstract 论文介绍一个效率极高的CNN架构ShuffleNet,专门应用于计算力受限的移动设备。新

DFan的NoteBook 5万+

基于SpringBoot+Vue的公司考勤管理系统

为什么选择我博主是优快云毕设辅导博客第一人兼开派祖师爷、博主本身从事开发软件开发、有丰富的编程能力和水平。专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流和合作。

m0_71849512的博客 1162

一种基于频域滤波法消除干扰项与角谱法重构技术的数字全息显微台阶形貌测量实例分析

一种基于频域滤波法消除干扰项与角谱法重构技术的数字全息显微台阶形貌测量实例分析

简单光学 2034

ShuffleNet系列论文:从v1-v2

v1 paper:https://arxiv.org/pdf/1707.01083.pdf v2paper:https://arxiv.org/abs/1807.11164 code:本文不提供code,参见各个框架的reademe 讲道理,存在mobielnet的情况下,我对shuffleNet的用法就少了很多,最大的存在感是shuffleNetV2提出了嵌入式芯片设计网络时的准则,这个才是关键所在,其他的一般情况下还是用mobilenet比较成熟,配合检测算法用的也比较多,部署框架支持的也...

lovep1的博客 1475

Vienna整流器SVPWM调制:7扇区划分与中点电位平衡的MATLAB/Simulink实现解析

本文深入解析Vienna整流器的SVPWM调制技术,重点介绍7扇区划分与中点电位平衡的MATLAB/Simulink实现方法。通过详细的算法推导和仿真模型构建,帮助工程师掌握整流器闭环控制策略,优化功率转换效率。内容涵盖扇区判断逻辑、矢量作用时间计算及中点电位平衡的PID调节等核心技术要点。

weixin_33937499的博客 387

轻量化网络ShuffleNet MobileNet v1/v2/v3( MobileNet)学习笔记

轻量化网络ShuffleNet MobileNet v1/v2学习笔记 部分取自(giantpandacv公众号) 在学习这两部分之前,大家应该要懂一个卷积操作,分组卷积和深度可分离卷机。其实他们的原理差不多,我在这里就不详细讲了,不清楚的同学可以查看我的这篇博文这篇博文几乎涵盖了现在神经网络中大部分的卷积的骚操作,看完以后相信你就会茅塞顿开的。 MobileNet v1 文章链接 Mobilen...

justsolow的博客 1万+

STM32F030F4P6 ADC多通道定时器触发DMA搬运

主函数中等待转换完成的标志位,然后打印出来。ADC回调函数中将数值赋值给变量。配置定时器1s读一次。

qq_24426625的博客 1357

芯片设计流程中的def文件

在实际的DEF文件中,每个部分都包含了与实际设计相关的详细信息,这个模板只展示了每个部分的基本结构。在实际应用中,DEF文件通常由EDA(电子设计自动化)工具在完成布局(Placement)和布线(Routing)步骤后自动生成,在集成电路设计中,DEF(Design Exchange Format)文件的模板具体内容会依设计的复杂性和特定需求而变化。简而言之,LEF文件提供了单元的物理特性和规则,而DEF文件使用这些规则来确定单元。)文件描述了特定设计中所有物理元素的精确放置和连线信息。

qq_36045093的博客 4863

轻量级网络:mobilnetv1,mobilnetv1,shufflenet v1,shufflenet v2笔记

轻量级网络 本文大纲 squeezenet: 还没写… mobilenet v1:《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》 mobilenet v2:《MobileNetV2: Inverted Residuals and Linear Bottlenecks》 mob...

qq_33278461的博客 560

飞书云文档API操作详细介绍

开通云文档API、python程序调用飞书api、飞书获取app_id和app_secret、

Brother_ning的博客 1万+

ShuffleNet V1/V2 | 轻量级深层神经网络

1.简介 ShuffleNet V1是Face++于2017年提出的轻量级深层神经网络。作者在2018年又提出了基于V1版本改进的ShuffleNet V2版本。ShuffleNet V1中的核心思想为group结合shuffle操作来改进传统的ResNet的block。而ShuffleNet V2则根据相同的FLOPs(float-point operations,乘积数量)情况下模型速度差别...

CVAIDL的博客 475

三部对接 sora-2:OpenAI 最新视频模型快速接入指南

本文介绍OpenAI最新视频生成模型Sora-2的接入方案,重点解析其Chat格式调用功能。开发者可通过在提示词中嵌入"横屏/竖屏""时长""清晰度"等要求快速生成视频。文章分三部分:1)基础准备(环境配置与API密钥获取);2)核心调用(提供Python/Java示例代码);3)结果查询与优化建议。Sora-2支持多语言调用,简化了视频生成流程,适用于短视频、广告创意等场景。

2501_93565190的博客 3429

激光打标轴坐标计算分析

‌:基于坐标差的平方和开方运算,勾股定理将几何关系转化为代数计算,从而实现了从坐标到距离的精确转换‌12。直角三角形的应用从上图可以看到A,B,P三个点连起来就是一个直角三角形了。用勾股定理计算距离 C#有相关的方法直接传参数就可以了。很方便。

StevenChen的博客 312

轻量级网络:ShuffleNet系列V1、V2

前言 ShuffleNetV1 ShuffleNetV2 前言 紧接着前面,整理一下ShuffleNet系列的两篇论文。 ShuffleNetV1 论文:https://arxiv.org/pdf/1707.01083.pdf TensorFlow实现:https://github.com/Linchunhui/Classification-Set-with-Tensorflow/bl...

qq_39382877的博客 506

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

轻量级网络之ShuffleNet v1

轻量级网络之ShuffleNet v1前言ShuffleNet Units计算量网络结构实验对比Shuffle的具体实现小结 前言 《ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices》 论文地址:https://arxiv.org/pdf/1707.01083.pdf 这是旷世(Face++)2018年发表在了CVPR上的文章,ShuffleNet_v1在MobileNet_v1后,Mobil

qq_41917697的博客 652

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

轻量级网络模型ShuffleNet V1

本文介绍了ShuffleNet的相关内容,ShuffleNet是旷视推出的轻量级网络模型,旨在不过多牺牲模型性能的同时大幅度减小模型的尺寸和加快模型的运算速度。ShuffleNet利用了分组点卷积pointwise group convolution来降低参数量,利用通道重排channel shuffle操作来增强不同通道之间的交互和融合。

AIGC Studio:分享AIGC前沿知识和好玩应用,公众号同名。 1829

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】ShuffleNet_V1模型算法详解

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】ShuffleNet_V1模型算法详解

yangyu0515的博客 2790

『高性能模型』轻量级网络ShuffleNet_v1及v2

v1论文:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices v2论文:ShuffleNet V2: Practical Guidelines for Ecient CNN Architecture Design 一、分组卷积 Group convolution是将输入层的不同特征图进行分组,然后采用不同的卷积核再对各个组进行卷积,这样会降低卷积的计算量。因为 一般的卷积都是在所有的输入特征图上

AI从入门到实践的博客 480

轻量级神经网络总结(1)- SqueezeNet - Xception- MobileNet v1/v2 - ShuffleNet V1/V2 - MixNet

现阶段神经网络在GPU上运行速度已经可以达到实时性要求,但是移植到手机端或者在CPU上运行还存在运行速度的问题。网络优化加速主要包含:1.设计轻量级的网络;2.网络模型压缩剪枝;3.其他的一些量化加速。这里主要是记录轻量级的神经网络(与模型压缩有着本质性的区别): 1.SqueezeNet: 发表于ICLR-2017,它在ImageNet上实现了和AlexNet相同的正确率,但是只使用了1/50的...

weixin_42096202的博客 7798
上一篇: Windows装机必备软件
下一篇: ShuffleNet v2
like_study_cat
博客等级 码龄7年 44粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值