旷视轻量化网络shufflenet算法解读

news2024/9/20 3:29:07

目录

预备知识

 1. 回顾MobileNet V1的核心思想---深度可分离卷积

2.ShuffleNet主要有两个创新点

2.1 分组卷积与1×1分组卷积

2.2  channel Shuffle(通道重排)

2.3 通道重排过程 

3. ShuffleNet网络结构

3.1 ShuffleNet unit

3.2  不同分组数的ShuffleNet网络结构

4. ResNet、ResNeXt、ShuffleNetV1 基本单元 FLOPs 对比

5. 推荐阅读

预备知识

卷积神经网络概述
https://www.bilibili.com/video/BV1sb411P7pO
https://www.bilibili.com/video/BV1gb411P7JD
卷积神经网络精讲
https://www.bilibili.com/video/BV1K7411W7So?p=5
https://www.bilibili.com/video/BV1K7411W7So?p=6
经典卷积神经网络结构
https://www.bilibili.com/video/BV1K7411W7So?p=11
谷歌轻量化卷积神经网络MobileNet V1
https://www.bilibili.com/video/BV16b4y117XH

 

 1. 回顾MobileNet V1的核心思想---深度可分离卷积

Howard 等人提出的 MobileNet V1利用深度可分离卷积对标准的卷积操作进行了分解,如图3所示.
深度可分离卷积可分为深度卷积(
depthwise convolution)和逐点卷积(pointwise convolution)两个操作:
(1)深度卷积对于每个输入通道采用不同的卷积核
,即一个通道对应一个卷积核,卷积操作是按照通道进行分解的;
(2)逐点卷积是卷积核大小为
1×1 的标准卷积,作用在输入的所有通道上,将来自不同通道的特征进行融合.
      对于任意大小的图像,应用深度可分离卷积能节省多少时间呢?假设对于一个大小为 H×W×D 的输入图像,我们要进行 2D 卷积(步幅=1,填充=0),使用 Nc 个大小为 h×h×D 的卷积核。这将把输入层 (H×W×D) 转换为输出层 (H−h+1×W−h+1×Nc)。所需的乘法运算总量为:Nc×h×h×D×(H−h+1)×(W−h+1)。

另一方面,对于相同的转换,深度可分离卷积所需的乘法运算总量为:
D×h×h×1×(H−h+1)×(W−h+1)+Nc×1×1×D×(H−h+1)×(W−h+1) =(h×h+Nc)×D×(H−h+1)×(W−h+1)。
深度可分离卷积和二维卷积之间的乘法运算比率是:

简化后得到:

对于大多数现代架构来说,输出层通常有许多通道,例如几百个甚至几千个【这样会导致深度可分离卷积的主要计算量集中在 1×1 的逐点卷积上。】。在这样的层中(Nc>>h),上述表达式简化为 1/(h×h)。这意味着在这种渐近情况下,如果使用 3 x 3 的滤波器,2D 卷积的计算量是深度可分卷积的 9 倍;如果使用 5 x 5 的滤波器,则是 25 倍。
深度可分离卷积的主要计算量集中在 1×1 的逐点卷积上还可根据MobileNet论文中表2.

该图来自MobileNet论文


因此:深度可分离卷积的主要计算量集中在 1×1 的逐点卷积上。为解决这个问题,ShuffleNet提出了 Group 逐点卷积,将逐点卷积进行分组卷积操作,以降低在逐点卷积操作方面的计算消耗。

2.ShuffleNet主要有两个创新点

Group Pointwise Convolution(1×1分组卷积);channel Shuffle(通道重排)。

2.1 分组卷积与1×1分组卷积

      分组卷积(Grouped Convolutions)是一种卷积操作,最早由 AlexNet 引入并在 ResNeXt 和 MobileNet 等模型中广泛使用。与传统的卷积不同,分组卷积将输入特征通道分成多个小组,并在每个小组上分别进行卷积操作,最后将各个组的结果进行拼接。它可以减少计算复杂度,提高卷积操作的效率,特别是在处理大量特征通道时。

https://arxiv.org/pdf/1711.09224

上图来源:CondenseNet: An Efficient DenseNet using Learned Group Convolutions
标准卷积参数量:3×3×12×6=648;分组卷积参数量:3×3×(12/3)×(6/3)*3=216

1×1 分组卷积是分组卷积的一种特殊情况,其中卷积核的大小为 1×1。1×1 卷积本身已经是一个非常高效的操作,通常用于降低通道维度或进行通道间的线性组合。而通过在 1×1 卷积中引入分组卷积,则可以进一步减少计算量。

1×1 分组卷积的原理:

  • 1×1 卷积:使用 1×1 大小的卷积核,只在通道维度上进行计算,不改变空间维度。它的作用通常是对输入特征进行通道混合,即每个输出通道是输入所有通道的加权求和。

  • 分组卷积:在常规分组卷积中,输入通道被分成若干组,每个组独立应用卷积核。

将两者结合,1×1 分组卷积的操作流程如下:

  1. 将输入特征通道划分为若干组,每组单独进行 1×1 卷积。
  2. 各组之间的卷积是独立的,卷积核只在组内的通道上进行运算,组与组之间不会有任何信息共享。
  3. 最终将各个组的结果拼接成完整的输出特征图。

举例:

假设输入张量的大小为 H×W×C,其中 H 和 W 是空间尺寸,C 是通道数。若使用 1×1 分组卷积,并且将通道分成 4 组,则每个组的卷积核只作用于 C/4 个通道,输出也相应是 4 组卷积结果的拼接。

2.2  channel Shuffle(通道重排)

(a)为一般分组卷积,造成分组之间信息无法流通; (b)和图 (c)为通道混洗(channel shuffle)操作


ShuffleNet首先将输入通道分组,在每个组中进行单独的卷积运算.如果单纯地堆叠分组卷积操作,会造成各个组之间的信息无法流通,影响网络的表达能力.为了让分组卷积能够得到其他分组产生的特征,ShuffleNet 提出了混洗(shuffle)操作,将来自不同组的特征重新进行排列,使得新的分组中包含来自之前各个组的特征,保证了各个组之间的信息流通.

2.3 通道重排过程 

 

3. ShuffleNet网络结构

3.1 ShuffleNet unit

 
(a)图表示具有3×3 DWConv(depthwise convolution)卷积模块的BottleNeck模块。
(b)图表示具有1×1 GConv(pointwise group convolution) 和channel shuffle 的ShuffleNet unit。
(c)图表示stride=2时的ShuffleNet unit。

3.2  不同分组数的ShuffleNet网络结构
ShuffleNet 架构。复杂度通过 FLOPs 来评估,即浮点乘加运算的次数。需要注意的是,对于 阶段 2,我们没有在第一个逐点卷积层上应用分组卷积,因为输入通道的数量相对较少,只有24个。

 

4. ResNetResNeXtShuffleNetV1 基本单元 FLOPs(只考虑乘法) 对比

 给定输入尺寸大小为c×h×wbottleneck通道数为m。
c=256;m=64                           c=256;m=4;g=cardinality=32

5. 推荐阅读

知乎:如何看待 Face++旷视科技出品的轻量高效网络 ShuffleNet ?https://ww.zhihu.com/question/62243686
知乎:如何评价shufflenet V2 ? https://www.zhihu.com/question/287433673/answer/455350957
知乎:轻量级神经网络“巡礼”(-)-- ShuffleNetV2:https://zhuanlan.zhihu.com/p/67009992 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2147742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mamba YOLO World

论文地址:https://arxiv.org/pdf/2409.08513v1 代码地址: GitHub - Xuan-World/Mamba-YOLO-World: Mamba-YOLO-World: Marrying YOLO-World with Mamba for Open-Vocabulary Detection 开集检测(OVD)旨在检测预定义类别之外的物体…

上海做网站公司发展分析报告

上海网站公司发展分析报告 一、行业概况 上海作为中国的经济、金融和科技中心,其网站开发行业在近年来迅速发展。根据统计数据,当地的网站公司数量逐年增加,涵盖了企业网站、电子商务平台、移动应用开发等多个领域。随着互联网技术不断演进&…

维钧团队与广东能源集团携手共创未来

2024 年 9 月 19日,能源与投资领域传出一则令人振奋的消息——多元化投资团队维钧团队与广东能源集团正式达成合作,如同璀璨星辰交汇,开启了双方共同发展的壮丽新篇章。 维钧团队,以其敏锐专业的投资眼光、灵活多元的投资策略和卓…

大牛直播SDK核心音视频模块探究

技术背景 视沃科技旗下”大牛直播SDK”,始于2015年,致力于传统行业极致体验的音视频直播技术解决方案,产品涵盖跨平台的实时RTMP推流、RTMP/RTSP直播播放(支持RTSP|RTMP H.265,Enhanced RTMP H.265)、GB28181设备接入、推送端播放…

redis为什么不使用一致性hash

Redis节点间通信时,心跳包会携带节点的所有槽信息,它能以幂等方式来更新配置。如果采用 16384 个插槽,占空间 2KB (16384/8);如果采用 65536 个插槽,占空间 8KB (65536/8)。 今天我们聊个知识点为什么Redis使用哈希槽而不是一致性…

Llama 3.1 Omni:颠覆性的文本与语音双输出模型

你可能听说过不少关于语言模型的进展,但如果告诉你,有一种模型不仅能生成文本,还能同时生成语音,你会不会觉得特别酷?今天咱们就来聊聊一个相当前沿的项目——Llama 3.1 Omni模型。这个模型打破了传统的文字生成边界,直接让文本和语音同时输出,实现了真正的"多模态…

【mac】MacOS无法打开XXX文件,因为无法验证开发者的问题解决

博主介绍: 大家好,我是想成为Super的Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围: 目前专注java体系,以及…

OpenCv(一)

计算机视觉和机器视觉的区别 计算机视觉(Computer Vision)和机器视觉(Machine Vision)是两个密切相关但又有区别的领域。两者在应用、技术和目标上都有所不同。 **计算机视觉:**主要是研究如何使计算机能够理解和处理…

单细胞代谢组学数据分析利器---SCMeTA

今天继续进行新的分享,为了支持单细胞代谢研究的严谨性和可重复性 ,今天分享基于时间序列的单细胞代谢数据分析处理工作流程,名为 SCMeTA。它保留了可扩展的接口和插件系统,以适应来自各种仪器的数据。对从 QE-Orbitrap MS 获取的…

2024最新的软件测试面试八股文(答案+文档)

一、软件测试基础面试题 1、阐述软件生命周期都有哪些阶段? 常见的软件生命周期模型有哪些? 软件生命周期是指一个计算机软件从功能确定设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直到停止该软件的使用的全过程(从酝酿到…

黑马头条APP手工测试项目

1.app有关概念 APP测试范围: 业务功能测试 专项测试:兼容性测试 、安装/卸载/升级测试、交叉事件测试 、push消息推送测试、性能测试、其他测试(用户体验、权限/边界、权限) 功能测试测试对象: 功能点(单…

Linux系统通过libgpiod读写GPIO

本文介绍Linux系统通过libgpiod读写GPIO。 从Linux 4.8后,官方不再推荐使用sysfs操作GPIO,目前,libgpiod是操作GPIO的首选方法。本文以Raspberry Pi 4开发板为例简要介绍通过libgpiod读写GPIO。 1.libgpiod简介 libgpiod是用于Linux环境下…

虚拟机:3、(待更)WSL2安装Ubuntu系统+实现GPU直通

WSL2实现linux子系统GPU直通 安装WSL2和Ubuntu 见https://blog.csdn.net/bule_shake/article/details/135992375 问题:wsl --update进度卡住 如果命令wsl --update进度一直为0,可以先运行wsl --shutdown,然后再次升级。 微软商店打不开、…

[2025]基于微信小程序慢性呼吸系统疾病的健康管理(源码+文档+解答)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

CTFshow——萌新隐写(未完待续)

萌新隐写2 首先暴力破解密码,初始密码设为19000000即可 我用的是ziperello 萌新隐写3 萌新隐写4 word打开 - > 打开设置 - > 隐藏文字 - >flag出现 萌新隐写5 中文转unicode 16进制转字符串 base32解码 萌新隐写6 暂时不会。。。。 隐写1 打开就看到头是…

基于微信小程序的健身房管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的健…

深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 这次目标本来要达到60%,但是却非常稳定的达到了40%,​😢​​😢​​😢​​😢​&am…

鹰眼降尘系统怎么样

鹰眼降尘系统是一种高效、智能且环保的粉尘治理解决方案,其表现优秀,朗观视觉小编认为,主要体现在以下几个方面: 智能化程度高:鹰眼降尘系统集成了先进的图像识别技术和机器学习算法,能够自动识别并跟踪粉尘…

2011年全国硕士研究生入学统一考试计算机科学与技术

1. 试卷背景: 试题:2011年全国硕士研究生入学统一考试计算机科学与技术学科联考中的计算机学科专业基础综合试题。难点:该问题的研究难点在于试题涵盖了计算机科学与技术的多个方面,包括数据结构、算法、计算机组成原理、操作系统…

Amber学习---小分子肽段的MD(第一天)

参考资料:1.科学网—AMBER基础教程B0:AMBER分子动力学模拟入门 - 李继存的博文 (sciencenet.cn) 2.Benjamin D. Madej & Ross Walker, An Introduction to Molecular Dynamics Simulations using AMBER 1 使用wsl(windows的子系统linu…