3种轻量化框架总结

一般的卷积神经网络的参数量和计算量都很大,很难应用在资源有限的场景中。为了解决这个问题,通常是在训练好的模型上进行优化,如通过对模型压缩减少计算量和存储成本,也可以通过剪枝连接方法去掉了不重要的神经元连接或者通道修剪去掉非必要的通道实现加速,还可以将浮点模型转为定点的量化方法实现模型压缩和计算加速。知识蒸馏也是不错的办法,用大模型作为老师,通过知识蒸馏让大模型教导出小模型来实现参数量和计算量的减少。但是这些方法的性能上线取决于原始模型。除了以上方法,研发轻量级模型是减少参数量和计算量的一种很优秀的方法。神经网络的主要参数量和计算量是因为矩阵乘法共享的,轻量的神经网络架构应当去构建参数量和计算量更少的、更高效的深度网络。

MobileNets

图图1 标准卷积和深度可分离卷积

MobileNetV1将普通卷积替换为深度卷积和逐点卷积。普通卷积的卷积核是直接用在所有的输入通道上,而深度卷积分为两部分进行计算,首先按照通道分别对特征图分别进行卷积,并将输出特征图进行拼接,随后使用逐点卷积进行通道卷积得到特征图,逐点卷积是卷积核为1x1的卷积,通道数和输入特征图一致。理论上如果MobileNetV1采用3x3卷积核,那么深度可分离卷积相较普通卷积可以降低大约9倍的计算量。

普通的残差结构先用1x1的卷积降维,再升维的操作。在MobileNetV2却是相反的操作,原因是将残差块替换为了深度可分离卷积之后,参数减少,提取的特征也相对减少,如果再进行压缩的话,能提取的特征就更少了,MobileNetV2为了避免特征减少需要先扩张高维,再经过深度可分离卷积提取特征,随后将卷积提取的特征降到低维。因此残差结构是先升维,再降维的操作。由于ReLU6激活函数对于低维的信息可能会造成比较大的瞬损失,对于高维的特征信息造成的损失很小。所以使用一个线性的激活函数避免特征损失。

MobileNetV3进一步使用AutoML技术用更少的FLOPs获得了更好的性能。MobileNeX重新思考了反向瓶颈的必要性,并声称经典的瓶颈结构也可以实现高性能。

ShuffleNet

ShuffleNetV1认为在轻量级网络中,过多的使用1x1卷积导致严重损害网络的准确性,将1x1卷积替换为分组卷积,分组卷积就是将输入特征图分成不同的组,每个组由单独的卷积核进行组内做卷积,如图3所示,图中分组卷积,表示特征图只和对应的卷积核做卷积。每组卷积都生成一个特征图,共生和组数相同个数的特征图。分组卷积可以用少量的参数量和运算量就能生成大量的特征图。由于分组卷积只会在组内进行卷积,这导致特征图组和组之间无法实现信息的交互,通过扰动通道操作打乱原有特征顺序再进行重组,可以实现不同组之间信息交互。

图3 分组卷积

ShuffleNetV2分析FLOPs和方法在目标硬件上的实际速度差异原因:首先是 MAC (memory access cost)存储访问成本,这时导致分组卷积运行时间有着很大的运行成本的直接原因。在相同计算量下,并行程度高的网络要比其他的网络速度快很多。在计算量相等的情况,网络部署实现平台的不同,最后所呈现的网络运行时间也有差异。此外,在早期的一些工作,通过张量分解来实现矩阵乘法加速,后来的工作证实尽管计算量降低了75%,但是图像处理器上的运行时间却变慢了,原因是硬件供应商通过软件算法硬件化对3x3卷积进行优化。ShuffleNetV2总结了4条高效网络准则:

  1. 相等的信道宽度使内存访问成本最小化。
  2. 过多的分组卷积会增加内存访问成本。
  3. 网络分支过多会降低其并行化程度
  4. 元素级别操作是不可忽略的,尽管它们具有较小的计算复杂度,但内存访问成本相对较重。

根据上述四条。ShuffleNet V2引入了通道分离操作,如图4(a)所示。在每个单元开始之前,输入通道`c`被分成两个分支 。根据准则三,其中一个分支保持恒等映射。另外的分支包括三个具有相同输入输出通道卷积。两个1x1卷积不再分组,因为开始的分支结构已经产生了两个分组。然后,两个分支进行通道级别的融合操作。最后在进行通道打乱操作,用来网络增强信息交互能力。对于空间下采样操作,如图4(b)所示,通道分离操作被移除,然后输出通道的数量翻倍。

4 ShuffleNetV2模块

一般的深度神经网络的特征图为了保证了对输入数据的全面理解,通常都会拥有冗余的信息,因此,在普通卷积构成的网络中生成特征图中存在许多类似的特征图对,假设能够不使过多的卷积核生产这些类似的特征层就可以有效减少卷积操作。GhostNetV1基于这个假设使用一种线性变化的方式产生冗余的特征图来有效降低模型参数量和计算复杂度。具体操作,Ghost模块同样将一个普通的卷积层分成两个部分。第一个部分使用普通的卷积操作,但是卷积核总的数量会需要严格地控制。随后对第一个部分得到的原始特征图进行简单的线性运算来生成更多的冗余特征图。由于没有需改变输出特征图的尺寸,Ghost模块需要的参数量和计算复杂度与普通卷积相比下降了很多。基于Ghost模块构建了一个高效的网络架构,即GhostNet。

由于卷积的轻量级模型在建模长程依赖性方面较弱,这限制了进一步的性能改进。最近,引发自然语言处理上变革的自注意机制的模型被引入到计算机视觉中,尽管自注意力机制模块可以捕捉全局信息,但是计算量随着输入分辨率的增加以二次方的速度增长。虽然面对对象问题产生了局部注意力模块(将图像切分为多个区域,在每个区域内分别部署注意力模块)能够降低了理论复杂度,但前处理进行图像切分需要进行大量变换张量形状的操作(比如调整图片大小,转置操作等),在计算资源不富裕的设备上会产生很高的时延。比如,将局部注意力模块和轻量化模型GhostNet结合,理论上复杂度只增加了20%,但是实际的推理时延却翻了2倍。目前经过自注意力机制在图像领域确实带来了惊喜,在多个大型数据集中也超过了不少卷积神经网络,但是在小数据集和少量的计算资源下短时间还无法取代卷积神经网络。因此,GhostNetV2提出了一种新的全连接注意力机制来捕获长距离空间信息,同时保持轻量级卷积神经网络的实现效率。具体地,全连接层被分解为水平全连接和垂直全连接以聚集卷积神经网络中2维特征图中的像素,形成全局感受野的注意力矩阵。并且将该注意力机制用来改造GhostNet的残差组件,通过增加全连接注意力机制来增强中间特征。与现有其他架构相比,GhostNetV2可以在精度和推理速度之间实现更好的平衡。但是全连接层会增加参数量和计算量。

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

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

相关文章

无涯教程-JavaScript - BESSELY函数

描述 BESSELY函数针对x的指定顺序和值返回Bessel函数Yn(x)(也称为Weber函数或Neumann函数)。 语法 BESSELY(X, N)争论 Argument描述Required/OptionalXThe value at which to evaluate the function.RequiredNThe order of the function. If n is not an integer, it is tr…

Spring中Endpoint、HasFeatures、NamedFeature和Actuator的关系及实现原理

文章目录 1. 关系缘由2. Actuator简介及简单使用3. Endpoint和Actuator的关系4. Endpoint和HasFeatures的关系5. Endpoint和HasFeatures原理解析5.1 Endpoint的实现原理5.2 HasFeatures的实现原理 6. 个人闲谈 1. 关系缘由 我们经常可以在Springboot中看到Endpoint注解&#x…

什么牌子的led台灯质量好?热门的Led护眼台灯推荐

led台灯有环保无污染、耗能低、长寿命等优点,适合用在阅读、书写、批阅等办公或学习的场所。而挑选LED台灯时,分散光挡板做的比较好的优先选择,能分散大量蓝光,对眼睛危害较小。下面,小编为大家推荐五款质量好的led护眼…

EF框架基础应用入门

文章目录 一、介绍二、EF6框架基础1. 数据模型和实体类2. 数据库上下文(DbContext)介绍3. 配置数据模型与数据库表的映射关系 两种方式Fluent API和数据注解Fluent API数据注解 4. 数据库迁移(Migration)概述a. 创建初始迁移b. 更…

Vulnhub: Masashi: 1靶机

kali:192.168.111.111 靶机:192.168.111.236 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.236查看80端口的robots.txt提示三个文件 snmpwalk.txt内容,tftp服务在1337端口 sshfolder.txt内容&#xff0c…

日200亿次调用,喜马拉雅网关的架构设计

说在前面 在40岁老架构师 尼恩的读者社区(50)中,很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近,尼恩指导一个小伙伴简历,写了一个《API网关项目》,此项目帮这个小伙拿到 字节/阿里/微博/…

管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——减法原理除法原理

减法原理 正面难则反着做(“ − - −”号) 【思路】当出现“至少、至多”、“否定用语"等正面较难分类的题目,可以采用反面进行求解,注意部分反面的技巧以及“且、或"的反面用法。 除法原理 看到相同,定序用除法消序( “ &quo…

python批量下载csdn文章

声明:该爬虫只可用于提高自己学习、工作效率,请勿用于非法用途,否则后果自负 功能概述: 根据待爬文章url(文章id)批量保存文章到本地;支持将文中图片下载到本地指定文件夹;多线程爬取; 1.爬取…

插入排序——希尔排序

1、简述: 希尔排序(Shells Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。 希尔排…

[杂谈]-快速了解直接内存访问 (DMA)

快速了解直接内存访问 (DMA) 文章目录 快速了解直接内存访问 (DMA)1、使用 DMA 需要什么?2、DMA介绍3、DMA 中的数据传输如何进行?4、DMA接口5、DMAC 控制器寄存器6、DMA 控制器编程模式6.1 突发模式(Burst Mode)6.2 循环窃取模式…

无人机集群路径规划MATLAB:孔雀优化算法POA求解无人机集群三维路径规划

一、无人机模型简介 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 二、孔雀优化算法POA介绍 孔雀优化算法( Peafowl Optimization Algorithm, POA), 是由 Jingbo Wang 等于2022 年提出的一种群体智能优化算法。其灵感来源于孔雀的群体行为。 智能优化算法&am…

Nebula数据库安装

1、什么是nebula NebulaGraph是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。 2、利用docker-compose安装Nebula数据库 1、前提条件 主机中安装了docker主机中安装了Docke…

基于改进莱维飞行和混沌映射的粒子群优化BP神经网络分类研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【git】【IDEA】在idea中使用git

目录 一、 在IDEA中配置git 二、 获取git仓库 2.1 本次初始化仓库 2.2 从远程仓库克隆 三、 本地仓库操作 3.1 将文件加入暂存区 3.2 将暂存区的文件提交到版本库 3.3 快捷键 使用快捷键 实现加入到暂存区与提交到版本库 3.4 查看日志 Show History 四、 远程仓库操…

springboot初试elasticsearch

引入依赖 elasticsearch的依赖版本与你elasticsearch要一致 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency> 索引库的操作 创建索引库 impo…

MySQL性能分析工具的使用

1. 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候&#xff0c;该如何思考呢&#xff1f;这里把思考的流程整理成下面这张图。 整个流程划分成了 观察&#xff08; Show status &#xff09; 和 行动&#xff08; Action &#xff09; 两个部分。字母 S 的部分…

2023-python-import耗时是为什么?

场景 场景&#xff1a; 树莓派4B 离线安装【arch64架构】 了 torch,sklearn等机器学习库 运行程序文件时候&#xff0c; import的时间总共花了 10s&#xff0c;无法忍受。 查阅下网站&#xff1a; import官方说辞 看蒙了&#xff0c;太多了&#xff1b; 反正就看看大概&…

手写Spring:第9章-Aware感知容器对象

文章目录 一、目标&#xff1a;Aware感知容器对象二、设计&#xff1a;Aware感知容器对象三、实现&#xff1a;Aware感知容器对象3.1 工程结构3.2 Spring感知接口类图3.3 定义标记接口和容器感知类3.3.1 定义标记接口3.3.2 对象工厂感知接口3.3.3 类加载感知接口3.3.4 对象名称…

Java“牵手”唯品会商品详情数据,唯品会商品详情API接口,唯品会API接口申请指南

唯品会平台商品详情接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取唯品会商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品详情接口API是一种用于获取电商平台上商品详情数据的接口&#xff0c;…

大数据Flink(七十四):SQL的滑动窗口(HOP)

文章目录 SQL的滑动窗口(HOP) SQL的滑动窗口(HOP) 滑动窗口定义:滑动窗口也是将元素指定给固定长度的窗口。与滚动窗口功能一样,也有窗口大小的概念。不一样的地方在于,滑动窗口有另一个参数控制窗口计算的频率(滑动窗口滑动的步长)。因此,如果滑动的步长小于窗口大…