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

ops/2024/9/25 15:23:22/

深度学习论文: 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.ppmy.cn/ops/25119.html

相关文章

盘点2024年5款ai自动直播app应用,记得点赞收藏!

盘点2024年5款ai自动直播app应用,记得点赞收藏! 流量是打通商家产品销量的命脉。产品,流量,成交是商家赚钱三要素,这三个要素,缺一不可。在这个酒香也怕巷子深的时代,再好的产品也需要推广宣传…

Linux 权限与软件包管理器 yum

一. 研究Linux默认权限 目录 ,起始权限:777 普通文件,起始权限666 Linux系统中存在权限掩码 使用umask指令也可以改变掩码 如果将掩码改为0000 我们可以看到权限发生改变(重新设置掩码) 最终权限起始权限 去掉 权限…

CIA组织MikroTik软路由攻击场景复现及后门加解密剖析

概述 写文章还是有一段时间了,发布的文章也是获得了不少小伙伴的关注,同时也和圈子里面的小伙伴慢慢的建立起了联系,平时也会时不时的一起探讨一些技术问题。因此,在最近和小伙伴的交流学习过程中,有一个小伙伴提到了…

小浪助手,快速下载学浪高清视频

小浪助手,一键下载学浪高清视频,你的专属视频管理神器,轻松整理、一键导出,让学习资源无忧无虑!资源管理专家,让学习更高效! 小浪助手我已经打包好了,有需要的自己取一下 学浪下载…

消费者处理消息失败如何解决

当Kafka消费者处理消息失败时,采取适当的策略来确保数据的正确处理和系统的稳定运行至关重要。以下是一些建议和常见做法来应对消费者处理消息失败的情况: 记录和监控异常: 在消费者代码中捕获并记录详细的异常信息,包括错误消息、…

聚类分析字符串数组

聚类分析字符串数组 对多个字符串进行聚类分析旨在根据它们之间的相似度将这些字符串划分成若干个类别,使得同一类别内的字符串彼此相似度高,而不同类别间的字符串相似度低 小结 数据要清洗。清洗的足够准确,可能不需要用聚类分析了数据要…

解决@MapKey is required

问题复现: 出现原因: 因为使用了mybatisX插件,导致检查报错mapkey is required 解决方案: 1、关闭mybatis检查,ctrlalts打开setting,Editor→inspections→mybatis 2、方法上加 MapKey("id")&…

1015: 【C1】【循环】【for】整数序列的元素最大跨度值

题目描述 给定一个长度为n的非负整数序列&#xff0c;请计算序列的最大跨度值&#xff08;最大跨度值 最大值减去最小值&#xff09;。 输入 一共2行&#xff0c;第一行为序列的个数n&#xff08;1 < n < 1000)&#xff0c;第二行为序列的n个不超过1000的非负整数&am…