深度学习论文: MobileNetV4 - Universal Models for the Mobile Ecosystem及其PyTorch实现

深度学习论文: MobileNetV4 - Universal Models for the Mobile Ecosystem及其PyTorch实现
MobileNetV4 - Universal Models for the Mobile Ecosystem
PDF: https://arxiv.org/pdf/2404.10518.pdf
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

专为移动设备设计的高效架构MobileNetV4(MNv4)核心在于引入了通用倒置瓶颈(UIB)搜索块和Mobile MQA注意力块,前者融合了多种技术,后者针对移动加速器优化,可大幅提升速度。同时采用了优化的神经架构搜索(NAS)方案。这一系列创新使得MNv4模型在多种设备上实现帕累托最优。此外,还引入了一种新的知识蒸馏技术,提高了模型的准确性。最终,MNv4-Hybrid-Large模型在ImageNet-1K上达到87%的准确率,同时在Pixel 8 EdgeTPU上的运行时间极短。

在这里插入图片描述

2 Universal Inverted Bottlenecks

通用倒瓶颈(UIB)块,其设计简洁而高效,如图所展示,它在传统的倒瓶颈块中巧妙地融入了两个可选的深度卷积(DW)操作。这两个DW分别置于扩展层之前以及扩展层和投影层之间,它们的存在与否是通过神经网络架构搜索(NAS)优化过程精心确定的,从而生成出性能卓越的全新架构。
在这里插入图片描述
尽管这种改动看似简单,但UIB块却成功地将多个现有的关键组件融为一体,包括经典的IB块、前沿的ConvNext块以及ViT中的FFN块。这种融合不仅保留了各组件的优势,还通过互补效应进一步提升了整体性能。

更值得一提的是,UIB还引入了一种革新的变体——额外的深度卷积IB(ExtraDW)块。这一创新举措为UIB块注入了新的活力,使其在保持高效的同时,进一步提升了模型的表达能力。

在网络的每个阶段,UIB都展现了出色的灵活性,以达成以下三个关键目标:

  • 即时实现空间和通道混合的权衡,优化模型的表达能力;
  • 按需扩大感受野,提升模型对上下文信息的捕获能力;
  • 最大化计算利用率,确保资源的高效利用。

3 Mobile MQA

专门为加速器优化的Mobile MQA注意力块,该块能够显著提升推理速度,达到超过39%的效率提升。

MQA
MQA通过共享键和值简化了多查询注意力机制。与MHSA相比,MQA在保持高质量的同时,实现了显著加速和参数减少。
在这里插入图片描述
Spatial Reduction Attention (SRA)
受到MQA非对称计算的启发,进一步将空间缩减注意力(SRA)融入优化后的MQA模块中,以降低键和值的分辨率,同时保持高分辨率的查询。此外使用步长为2的3x3深度卷积替代了AvgPooling,为模型容量的提升提供了一种高效且经济的方案。
在这里插入图片描述
通过引入非对称空间下采样,我们可以在保持极小精度损失(-0.06%)的同时,实现超过20%的效率提升。

Mobile MQA
在这里插入图片描述
其中 SR代表空间减少,即步长为2的深度卷积(DW),或者在未使用空间减少的情况下表示恒等函数。

4 Design of MNv4 Models

为了有效地实例化UIB块,作者采用了定制的TuNAS方法,该方法针对性能改进进行了优化。为克服TuNAS因参数共享而产生的偏见,作者实施了一个两阶段搜索策略。这一策略旨在解决UIB深度层与其他搜索选项之间参数数量差异的问题,确保搜索结果的公正性和有效性。

在搜索过程中,作者首先进行了粗粒度搜索,集中于确定最佳的滤波器大小,同时保持其他参数如扩展因子(设为默认值4)和深度可分核(使用3x3)不变。这一阶段的目的是快速筛选出可能的滤波器大小范围。

随后,基于粗粒度搜索的结果,作者进行了细粒度搜索。在这一阶段,作者进一步探索UIB的两个深度可分层的配置,包括它们的存在与否以及核大小(3x3或5x5)的选择。同时,扩展因子仍然保持为4,以控制变量并更精确地评估不同配置的性能。

通过这种两阶段的搜索策略,作者成功地确定了UIB块的最优配置,既考虑了性能又平衡了参数数量,为UIB的有效实例化提供了有力支持。

在这里插入图片描述
MNv4模型的架构细节:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 Results

ImageNet classification
在这里插入图片描述
COCO Object Detection
在这里插入图片描述

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

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

相关文章

Collections.singletonList

1、Collections.singletonList public static <T> List<T> singletonList(T o) {return new SingletonList<>(o); } 列表只有一个元素&#xff0c;节省内存&#xff0c;返回列表不可以改变。 2、Arrays.asList public static <T> List<T> asL…

swagger xss漏洞复现

swagger xss漏洞复现 文章目录 swagger xss漏洞复现漏洞介绍影响版本实现原理漏洞复现修复建议: 漏洞介绍 Swagger UI 有一个有趣的功能&#xff0c;允许您提供 API 规范的 URL - 一个 yaml 或 json 文件&#xff0c;将被获取并显示给用户 根本原因非常简单 - 一个过时的库Dom…

高级控件5-RecyclerView

与ViewPager类似的一个滑动的高级控件是RecyclerView&#xff0c;使用更加灵活。 第1步&#xff1a;添加依赖 打开mvn官网&#xff0c;检索recyclerview&#xff0c;选择使用人数较多的版本&#xff0c;复制依赖&#xff0c;放入项目中即可 快捷方法&#xff08;复制下面的代…

科普:PD协议、QC协议、三星AFC、华为SCP是什么,怎么获取这些协议及协议通讯原理

PD协议是什么 PD协议是由 USB-IF 组织制定的一种快速充电规范&#xff0c;它一般使用Type-C接口&#xff0c;所以常见的Type-C接口充电器一般都是支持PD协议。 USB Power Delivery(USB PD)是目前主流的快充协议之一&#xff0c;USB PD 通过Type-C电缆和连接器增加电力输送&…

【Unity动画系统】动画基本原理与Avater骨骼复用

动画基本原理 动画片段文件是一个描述物体变化状态的文本文件 在Unity中创建的资源文件大多都是YAML语言编写的文本文件 Curves表示一种变化状态&#xff0c;为空的话则没有记录任何内容 位置变化后的旋转变化状态&#xff1a; 动画文件里的Path名字要相同才能播放相同的动画 …

uniapp制作分页查询功能

效果 代码 标签中 <uni-pagination change"pageChanged" :current"pageIndex" :pageSize"pageSize" :total"pageTotle" class"pagination" /> data中 pageIndex: 1, //分页器页码 pageSize: 10, //分页器每页显示…

[笔试训练](九)

目录 025&#xff1a;添加逗号 026&#xff1a;跳台阶 027&#xff1a;扑克牌顺子 025&#xff1a;添加逗号 添加逗号_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 将输入的数字&#xff0c;每次模上10&#xff0c;从个位开始取每一位数&#xff…

[C++ QT项目实战]----C++ QT系统登陆界面设计

前言 在C QT项目开发过程中&#xff0c;设计系统登录界面可以使用QT框架来实现。以下是一个简单的系统登录界面设计示例&#xff1a; 创建登录界面UI&#xff1a;可以使用QT Designer来设计登录界面的UI&#xff0c;包括用户名输入框、密码输入框、登录按钮等。在QT Designer中…

Centos8操作系统安装mysql5.7版本以及报错解决

目录 一、卸载MySql 1.首先查看已安装的mysql 2.逐个或者执行一下命令统一卸载掉 注意&#xff1a; 3. 卸载其他相关文件 二、安装MySql 1.安装mysql的rpm源 2.安装MySql 如果遇到以下错误&#xff1a; 问题一: 解决方法&#xff1a; 问题二、 解决方法&#xff1…

基本的SQL语句类型

基本的SQL语句类型 1. 数据查询语句 介绍数据查询语句的基本语法和用途&#xff0c;包括SELECT语句用于从数据库中检索数据&#xff0c;以及条件筛选、排序和聚合等操作。 2. 数据操作语句 解释数据操作语句的作用&#xff0c;包括INSERT语句用于向数据库中插入新记录&…

C语言面试题之相交链表

相交链表 实例要求 1、给定两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。2、如果两个链表不存在相交节点&#xff0c;返回 null 。示例&#xff1a; 实例分析 可以使用两种方法&#xff1a;哈希表方法和双指针方法。哈希表方法…

在 Quartz 的集群模式中,SchedulerThread线程多久会执行一次检查?

目录 引言 调度逻辑与时间计算 computeTimeToNextTrigger 方法 行为特点 引言 在 Quartz 的集群模式中&#xff0c;SchedulerThread 线程的执行频率取决于触发器的状态和计划时间。没有一个固定的时间间隔&#xff0c;因为线程需要适应当前调度器的任务需求。这个线程主要任…

【分布式 | 第四篇】限流算法实现方案

文章目录 4.限流算法4.1计算器4.2漏桶算法4.3令牌桶限流 4.限流算法 4.1计算器 计数器比较简单粗暴&#xff0c;比如我们要限制1s能够通过的请求数实现的思路就是从第一个请求进来开始计时&#xff0c;在接下来的1s内&#xff0c;每个请求进来请求数就1&#xff0c;超过最大请…

删除二叉搜索树中的节点

题目链接 删除二叉搜索树中的节点 题目描述 注意点 节点值唯一root 是合法的二叉搜索树节点数的范围 [0, 10000] 解答思路 可以根据二叉搜索树的性质找到要删除的节点&#xff0c;关键是删除节点后怎么重新构建成一棵新的二叉搜索树首先要找到的是删除节点node的父节点nod…

微信小程序:9.小程序配置

全局配置文件 小程序根目录下的app.json文件是小程序的全局配置文件。 常用的配置文件如下: pages 记录当前小程序所有的页面存放路径信息 window 全局设置小程序窗口外观 tabBar 设置小程序底部的tabBar效果 style 是否启用新版style 小程序窗口的组成部分 了解windo节点常…

【NC16664】合唱队形

题目 合唱队形 此题可以用动态规划&#xff0c;也可以用贪心和二分 思路 此题就是求一个数组中山脉数组的最大长度。思路很直观&#xff0c;这里直接给出算法&#xff1a; 记数组元素个数为 n n n&#xff0c;遍历数组每个元素&#xff0c;对每个元素&#xff1a; (1) 求出这…

场景文本检测识别学习 day07(BERT论文精读)

BERT 在CV领域&#xff0c;可以通过训练一个大的CNN模型作为预训练模型&#xff0c;来帮助其他任务提高各自模型的性能&#xff0c;但是在NLP领域&#xff0c;没有这样的模型&#xff0c;而BERT的提出&#xff0c;解决了这个问题BERT和GPT、ELMO的区别&#xff1a; BERT是用来…

redis 结合Lua脚本实现 秒杀、防止超卖

需求&#xff1a;同1商品单个用户限购1件&#xff0c;库存不会超卖1 Lua脚本&#xff0c;因可实现原子性操作&#xff0c;这个文件放到resources目录下 local userId KEYS[1] -- 当前秒杀的用户 ID local goodsId KEYS[2] -- 秒杀的商品 ID -- 订单id local orderId ARGV[1…

微信收款码0.2费率开通

很多人想申请低手续费率的收款码不知从何下手&#xff0c;在参考了大量博客教学之后&#xff0c;终于搞懂了详细流程以及注意事项。在此记录一下。我申请的是一个只需要0.2%费率的微信收款码&#xff0c;申请时间是2022年2月12日。申请之前只需要准备营业执照和法人身份z&#…

【iconv】Linux c++ 中文字符串转十六进制 GBK 编码/内码

文章目录 问题描述c 代码CMakeLists.txt参考链接 问题描述 Linux 系统默认使用的是 UTF-8 编码&#xff0c;并且 c 中没有标准库可以直接将中文字符转为 GBK 编码/内码。因此需要借助 iconv 库来实现。 在实现代码之前&#xff0c;可以在一下在线工具网站进行中文字符到各个编…