当前位置: 首页 > news >正文

轻量级网络模型ShuffleNet V2

在学习ShuffleNet V2内容前需要简单了解卷积神经网络和MobileNet,以及Shuffnet V1的相关内容,大家可以出门左转,去看我之前的几篇博客MobileNet发展脉络(V1-V2-V3),轻量级网络模型ShuffleNet V1🆗,接下来步入正题~

卷积神经网络被广泛应用在图像分类、目标检测等视觉任务中,并取得了巨大的成功。然而,卷积神经网络通常需要较大的运算量和内存占用,在移动端以及嵌入式设备等资源受限的环境中受到限制,因此需要进行网络压缩。

ShuffleNet-V2是旷视推出的继ShuffleNet-V1的轻量级网络模型,旨在不过多牺牲模型性能的同时大幅度减小模型的尺寸和加快模型的运算速度。在同等复杂度下,ShuffleNet-V2比ShuffleNet-V1和MobileNet-V2更准确。

轻量级网络模型回顾

  • MobileNet v1: 提出了 深度可分离卷积和两个全局超参数-宽度乘法器和分辨率乘法器。

  • MobileNet v2: 在MobileNet V1深度可分离卷积的基础上提出了具有线性瓶颈的倒置残差块。

  • MnasNet: 提出了分层的神经网络架构搜索空间,使用NAS搜索各自基本模块,通过多目标优化的目标函数进行反馈和修正。

  • MobileNet v3:使用了 NAS 和 NetAdapt 算法搜索最优的模型结构,同时对模型一些结构进行了改进,在 MobileNet_V2的具有线性瓶颈的倒置残差块基础上引入MnasNet的Squeeze-and-Excitation注意力机制。

  • ShuffleNet v1:利用分组点卷积来降低参数量,利用通道重排操作来增强不同通道之间的交互和融合。

  • ShuffleNet v2:提出了四条有效的网络设计原则,并根据这四条原则设计了一个高效的网络结构。

轻量级网络模型比较

四条轻量级网络模型设计原则

当输入输出通道相同的时候,内存访问量MAC最小,运行速度最快

乘法-加法浮点运算次数FLOPs只反映卷积层,仅为间接的指标

分组卷积以及过大的分组数会导致内存访问量MAC变大

分支结构会产生碎片化并降低并行能力

逐元素操作的开销不可忽略

轻量化网络模型总结

ShuffleNet V2中提出的四条轻量化网络设计准则:

一、输入输出通道相同时内存访问量MAC最小

二、分组数过大的分组卷积会增加MAC

三、碎片化的操作对网络并行加速不友好

四、逐元素操作带来的内存和耗时不可忽略

MobileNet v2在MobileNet V1深度可分离卷积的基础上提出了具有线性瓶颈的倒置残差块,输入输出通道不一致,不满足准则一。

MnasNet提出了分层的神经网络架构搜索空间,使用NAS搜索各自基本模块,通过多目标优化的目标函数进行反馈和修正,各个block碎片化,不利用并行,不满足准则三。

MobileNet v3使用了 NAS 和 NetAdapt 算法搜索最优的模型结构,同时对模型一些结构进行了改进,在 MobileNet_V2的具有线性瓶颈的倒置残差块基础上引入MnasNet的Squeeze-and-Excitation注意力机制,不满足准则一和三。

ShuffleNet v1利用分组点卷积来降低参数量,利用通道重排操作来增强不同通道之间的交互和融合。使用分组卷积不满足准则二。

此外,所有的轻量级网络模型都是用了逐元素操作,都不满足准则四。

ShuffleNet V2 网络模块

ShuffleNet V1 ShuffleNet V2

ShuffleNet V2 模型结构

ShuffleNet V2 实验对比

ShuffleNet V2模型总结

一、提出了四条轻量化网络模型设计原则,并根据这四条准则设计了shufflenet v2网络结构。

  • 输入输出通道相同时MAC最小

  • 分组数过大的分组卷积会增加MAC

  • 碎片化操作对网络并行加速不友好

  • 尽量避免逐元素操作

二、在相同FLOPs的情况下,ShuffleNet V2准确率比其他轻量级模型要高。

OK,至此我们以及介绍完了轻量级网络的MobileNet系列包括(MobileNet V1,MobileNet V2,MobileNet V3),MnasNet以及ShuffleNet系列包括(ShuffleNet V1,ShuffleNet V2),有兴趣的同学可以去看这几篇相关的博客,也欢迎大家一起交流~

相关文章:

轻量级网络模型ShuffleNet V2

在学习ShuffleNet V2内容前需要简单了解卷积神经网络和MobileNet,以及Shuffnet V1的相关内容,大家可以出门左转,去看我之前的几篇博客MobileNet发展脉络(V1-V2-V3),轻量级网络模型ShuffleNet V1🆗&#xff…...

分享美容美发会员管理系统功能的特点_美容美发会员管理系统怎么做

人们越来越关心美发,美发行业发展迅速,小程序可以连接在线场景,许多美发院也开发了会员卡管理系统。那么一个实用的美发会员管理系统怎么制作呢?它有什么功能?我们一起来看看~(干货满满,耐心看完…...

Oracle-05-DCL篇

🏆一、简介 Oracle的DCL代表数据库控制语言,用于管理数据库对象的访问和安全性。DCL的两个主要命令是GRANT和REVOKE。 GRANT命令用于授予用户或角色对数据库对象的访问权限,例如表、视图或存储过程。GRANT命令的语法如下: GRANT privilege_name [, privilege_name]... …...

tess4j简单使用入门

tess4j下载 下载地址: https://sourceforge.net/projects/tess4j/ 不要直接下载,点击files,然后下载最新版 下载解压后放到指定的目录即可,这里放到d:\jar目录下 tess4j根目录: d:\jar\tess4j tess4j使用 把test4j项目目录中dist和lib目录下的所有jar包导入到需要的项目中…...

WebGPU学习(4)---使用 UniformBuffer

接下来让我们使用 UniformBuffer。UniformBuffer 是一个只读内存区域,可以在着色器上访问。 这次,我们将传递给着色器的矩阵存储在 UniformBuffer 中。演示示例 1.在顶点着色器中的 UniformBuffer 这次我们在顶点着色器里定义一个名为Uniforms的新结构体…...

Http客户端Feign-远程调用

Feign的使用步骤 引入依赖添加EnableFeignClients注解编写FeignClient接口使用FeignClient中定义的方法代替RestTemplate Feign的日志配置 1.方式一是配置文件,feign.client.config.xxx.loggerLevel 如果xxx是default则代表全局如果xxx是服务名称,例如userservi…...

RK3568镜像的拆包和打包

文章目录 前言一、window上分包和打包分包打包二、Linux上分包和打包分包打包总结前言 本文记录在win10上利用瑞芯微提供的工具进行分包和打包,同样也有Linux教程 提示:以下是本篇文章正文内容,下面案例可供参考 一、window上分包和打包 分包 window下一般直接利用工具即…...

《设计模式》适配器模式

《设计模式》适配器模式 适配器(Adapter)是一种结构型设计模式,它允许我们将一个类的接口转换成另一个类的接口,从而使得原本由于接口不兼容而无法合作的类能够一起工作。适配器模式通常用于以下情况: 在已有的类中添…...

linux 随笔 5-服务管理

0. 装到虚拟机与物理机,感觉各有各的不方便 Linux下systemctl命令和service、chkconfig命令的区别 1. service 根据/etc/init.d目录下的配置,做服务相关的: 启动停止重新启动关闭系统服务 2. chkconfig 用于维护 /etc/rc[0-6].d 的命令…...

【java基础】枚举类(enum)

文章目录基本介绍快速使用字段、方法、构造器枚举类方法toString方法valueOf方法values方法ordinal方法基本介绍 在java中有一种特殊的类型就是枚举类,对于一个有限的有固定值的集合,我们就可以考虑使用枚举类来进行表示,例如服装的大小为 小…...

Linux2

(1)root用户的主目录: (3)查看 (4)远程登陆系统:CentOS7上使用ifconfig查看IP,使用putty远程登陆 (5)查询目前用户登录情况:who命令…...

C语言基础应用(二)数据的转换与输入输出

学习了C语言的基本数据类型后,我们可能会想这些数据如何进行运算,是否可以让不同类型的数据直接进行运算呢? 一、数据类型转换 1.1 int类型与float类型之间的转换 int i 5; // j值为2.000000 因为左右操作数均为整型float j i/2; // …...

C# 用NPOI读取EXCEL

1. 复制DLL文件 ICSharpCode.SharpZipLib.dll NPOI.dll NPOI.OOXML.dll NPOI.OpenXml4Net.dll NPOI.OpenXmlFormats.dll 2. 在工程中添加引用 3. using System.IO; using NPOI.HSSF.UserModel; using NPOI.XSSF.UserModel; using NPOI.SS.UserModel; using NPOI.OpenXml4Ne…...

《高性能MySQL》——MySQL基准测试(笔记)

文章目录二、MySQL基准测试2.1 为什么需要基准测试2.2 基准测试的策略2.2.1 测试何种指标2.3 基准测试方法2.3.1设计和规划基准测试2.3.2 基准测试应该运行多长时间2.3.3 获取系统性能和状态2.3.4 获得准确的测试结果2.3.5 运行基准测试并分析结果2.3.6 绘图的重要性2.4 基准测…...

微服务注册到Nacos后如何读取外网IP

背景 微服务部署后,各服务是需要相互间调用的,其中服务A在去调用服务B的时候发现无法调用成功。其中服务注册和发现中心以及配置中心使用的是Nacos。Nacos客户端在注册服务时会从机器网卡中选择其中一个IP来注册,当我们要部署的机器存在多个…...

【华为OD机试模拟题】用 C++ 实现 - 匿名信(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 货币单位换算(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 选座位(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 停车场最大距离(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 重组字符串(2023.Q1) 【华为OD机试模…...

nginx配置https域名

如果已安装nginx若没有配置ssl模块需要添加ssl模块。注意:默认是不会安装ssl模块的查看nginx是否有安装ssl模块./nginx -V若执行结果显示下图中的-with-http_ssl_module则说明nginx已经安装了ssl模块若没有安装则重新打包编译./configure --with-http_ssl_module编译…...

c语言tips-大端小端存储介绍和使用union判断大小端

1. 大小端介绍 大端(Big Endian)和小端(Little Endian)是两种CPU或者计算机系统存储数据的方式。 在大端系统中,数据的高位字节(MSB)存储在内存地址的低位,低位字节(LSB…...

DevOps落地与转型:提升研发效能的方法与实践

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主&#x1f3…...

【测试】loadrunner安装

努力经营当下,直至未来明朗! 文章目录备注一、下载安装包二、安装loadrunner三、修改浏览器配置今天搬砖不努力,明天地位不稳定! 备注 电脑最好有IE浏览器,但是没有也没事儿。(注意:IE浏览器不…...

物联网的新应用--触摸物联网

摘要:本文介绍一下触摸物联网的新进展--电子皮肤的物联网应用。还以为物联网的作用领域单单是从现场采集数据或者传输命令到执行设备吗?不,物联网的应用范围远比控制一盏灯大的多。据网上报道,香港城市大学(城大&#…...

用 Python 画如此漂亮的插图 ,So easy

人生苦短,快学Python! 今天我们进行一次实战案例分享,以全球预期寿命与人均 GPD数据为例,写一篇 Python 中漂亮散点图的快速指南。除了正常的数据清洗/处理、还会进行简单的统计分析,实现数据处理-统计分析-可视化一条…...

vue-知识点总结

历史 2015年 10月27 1.0.0 Evangelion 新福音战士2016年 10月1日 2.0.0 Ghost in the Shell 攻壳机动队2019年 2月 2.62020年 9月18日 3.0.0 One Piece(海贼王)2021年 8月10日 3.2.0 .sync where 父向子传递props, 需要双向绑定的时候(子组件想更新这个值) how <one-comp…...

Dubbo源码解析-——SPI机制

文章目录一、什么是SPI机制二、Java原生的SPI机制2.1、javaSPI示例2.1.1、编写接口和实现类2.1.2、编写配置文件2.1.3、通过SPI机制加载实现类2.1.4、JAVA SPI 源码解析2.1.4.1、ServiceLoader#load2.1.4.2、ServiceLoader构造方法2.1.4.3、ServiceLoader#reload2.1.4.4、LazyI…...

赛后补题:CF1789C Serval and Toxel‘s Arrays

传送门:CF 题目描述: 题目较长,此处省略 输入: 3 3 2 1 2 3 1 4 2 5 1 1 1 1 1 10 10 4 6 9 12 16 20 2 10 19 7 1 3 5 4 2 17 2 18 6 11 7 1 8 17 5 5 5 5 2 2 输出: 13 1 705比赛的时候感觉已经想到了正解,但是没有想的很清楚,所以赛时没有打出来. 我认为这道题的突破口其…...

Linux学习(8.7)命令与文件的搜寻

目录 命令与文件的搜寻 which 文件档名的搜寻&#xff1a; whereis (寻找特定文件) locate find 以下内容转载自鸟哥的Linux私房菜 命令与文件的搜寻 which 这个命令是根据『PATH』这个环境变量所规范的路径&#xff0c;去搜寻『运行档』的档名&#xff5e; 所以&am…...

Linux下 Makefile文件基本语法二

本文继续上一篇关于 Makefile 文件内容的介绍。上一篇文章如下&#xff1a; Linux下 Makefile 基本语法_凌雪舞的博客-CSDN博客 一. Makefile 上一篇文章介绍了 Makefile基本语法中的变量&#xff0c;模式规则&#xff0c;自动化变量。这里继续介绍 Makefile 的另外一些语…...

【前端】JavaScript构造函数

文章目录概念执行过程返回值原型与constructor继承方式原型链其他继承方式&#xff08;还没写&#xff09;参考概念 在JS中&#xff0c;通过new来实例化对象的函数叫构造函数。实例化对象&#xff0c;也就是初始化一个实例对象。构造函数一般首字母大写。 构造函数的目的&…...

STM32单片机之温湿度检测系统(DTH11、OLED、LCD1602)

LCD1602LCD1602引脚第 1 脚: VSS 为电源地 第 2 脚: VDD 接 5V 正电源 第 3 脚: VL 为液晶显示器对比度调整端,接正电源时对比度最弱&#xff0c;接地时对比度最高&#xff0c;对比度过高时会产生“鬼影”&#xff0c;使用时可以通过一个 10K 的电位器调整对比度。 第 4 脚&…...

vitepress 就这几步操作,博客就搭好啦?

Ⅰ、什么是vitepress &#x1f48e; vitepress 使用场景 简单的说 &#xff0c;只要 会用 markdown 语法&#xff0c;就能构建自己的 「博客、笔记、使用文档」等系统 &#xff1b; ✨ vitepress 优势 优势介绍傻瓜式操作只需要配置 菜单 和 对应的 markdown 就能实现博客、笔…...