盗梦空间续集(InceptionNeXt):使用Inception优化加速ConvNeXt实现ImageNet-1K的最佳精度

Abstract

灵感来自ViT的长距离建模能力,大核卷积最近被广泛研究和采用,以扩大感受野并提高模型性能,例如显著的工作ConvNeXt采用7×7深度卷积。虽然这种深度算子只消耗少量的FLOPs,但由于高内存访问成本,它在强大计算设备上大大损害了模型效率。例如,ConvNeXt-T在A100 GPU上全精度训练时,与ResNet-50的FLOPs相似,但吞吐量仅为约60%。虽然减少ConvNeXt的核大小可以提高速度,但会导致显著的性能下降,这就提出了一个挑战性的问题:如何在保持性能的同时加速基于大核的CNN模型。为了解决这个问题,受Inceptions的启发,我们提出将大核深度卷积沿通道维度分解为四个并行分支,即小方核、两个正交带状核和一个恒等映射。通过这种新的Inception深度卷积,我们构建了一系列网络,即InceptionNeXt,它们不仅具有高吞吐量,还保持了竞争力的性能。例如,InceptionNeXt-T的训练吞吐量比ConvNeX-T高1.6倍,并在ImageNet-1K上获得了0.2%的top-1准确率提升。我们预计InceptionNeXt可以作为未来架构设计的经济基线,以减少碳足迹。
代码地址:
https://github.com/sail-sg/inceptionnext

图片

 欢迎加入自动驾驶实战群

Introduction

受语言生成预训练的启发,Image GPT (iGPT)将像素视为标记,并采用纯Transformer进行视觉自监督学习。然而,iGPT在处理高分辨率图像方面由于计算成本面临限制。突破来自Vision Transformer (ViT),它将图像块视为标记,利用纯Transformer作为骨干,并在大规模监督图像预训练后在图像分类中表现出显著性能。
显然,ViT 的成功进一步激发了人们对Transformer在计算机视觉领域应用的热情。许多ViT变体,如DeiT和Swin,被提出并在各种视觉任务中取得了显著的性能。ViT类模型优于传统CNN(例如,Swin-T在ImageNet上的81.2% vs ResNet-50的76.1%)的卓越性能使许多研究人员相信Transformer最终会取代CNN并主导计算机视觉领域。
是时候让CNN反击了。随着DeiT 和Swin中先进的训练技术,“ResNet strikes back” 的工作表明,ResNet-50的性能可以提升2.3%,达到78.4%。此外,ConvNeXt 表明,使用类似于注意力窗口大小的GELU  激活和大内核大小等现代模块,CNN模型在各种设置和任务中可以始终优于Swin Transformer。ConvNeXt并不是孤军奋战:越来越多的工作显示出类似的观察结果,如RepLKNet 和SLaK。在这些现代CNN模型中,共同的关键特征是通常通过具有大内核大小的深度卷积 实现的大感受野.

图片

Formulation and Method

公式与方法

3.1. MetaNeXt

MetaNeXt模块的公式

在ConvNeXt 中,对于其每个ConvNeXt模块,输入X首先通过一个深度卷积来沿空间维度传播信息。我们遵循MetaFormer 的做法,将深度卷积抽象为一个负责空间信息交互的token mixer。因此,如图2的第二个子图所示,ConvNeXt被抽象为MetaNeXt模块。正式地,在一个MetaNeXt模块中,其输入X首先被处理为

图片

归一化 [1, 29]之后,特征被馈送到一个MLP模块中,该模块由两个全连接层组成,在它们之间有一个激活函数,类似于Transformer中的前馈网络。这两个全连接层也可以通过1×1卷积实现。同时,采用了shortcut connection。

图片

与MetaFormer模块的比较

如图2所示,可以发现MetaNeXt模块与MetaFormer模块共享类似的模块,例如token mixer和MLP。然而,这两种模型之间的一个关键区别在于shortcut connections的数量。MetaNeXt模块实现了一个shortcut connection,而MetaFormer模块包含两个,一个用于token mixer,一个用于MLP。从这个角度来看,MetaNeXt模块可以被认为是将MetaFormer的两个残差子模块合并的结果,从而简化了整体架构。因此,MetaNeXt架构比MetaFormer具有更高的速度。然而,这种更简单的设计有一个限制:如我们的实验(表5)所示,MetaNeXt中的token mixer组件不能太复杂(例如Attention)。

实例化到ConvNeXt

如图2所示,在ConvNeXt中,token mixer简单地通过一个深度卷积实现。我们首先基于ConvNeXt-T进行了初步实验,并在表1中报告了结果。首先,深度卷积的核大小从7×7减少到3×3。与核大小为7×7的模型相比,核大小为3×3的模型训练吞吐量提高了1.4倍,但性能显著下降,从82.1%下降到81.5%。接下来,受ShuffleNet V2启发,我们仅将部分输入通道馈送到深度卷积中,而其余的保持不变。处理的输入通道数由一个比例控制。结果发现,当比例从1减少到1/4时,训练吞吐量可以进一步提高,而性能几乎保持不变。总之,这些初步实验传达了两个关于ConvNeXt的发现。发现1:大核深度卷积是速度瓶颈。发现2:在单个深度卷积层中处理部分通道已足够。

图片

公式

基于上述发现,我们提出了一种新型卷积来保持准确性和效率。根据发现2,我们将部分通道保持不变,并将其视为一个恒等映射分支。受发现1的启发,对于处理的通道,我们提出以Inception风格分解深度操作。Inception 利用了几条小核(例如3×3)和大核(例如5×5)分支。同样,我们采用3×3作为我们的一个分支,但由于其实际速度较慢,放弃了使用大方核。相反,大核k_h × k_w

图片

复杂性

三种类型卷积的复杂性,即传统卷积、深度卷积和Inception深度卷积如表2所示。可以看出,Inception深度卷积在参数数量和FLOPs方面比其他两种卷积更高效。Inception深度卷积消耗的参数和FLOPs与通道和核大小成线性关系。深度卷积和Inception深度卷积在FLOPs方面的比较也清晰地显示在图3中。

图片

图片

3.3. InceptionNeXt

基于InceptionNeXt模块,我们可以构建一系列名为InceptionNeXt的模型。由于ConvNeXt是我们的主要比较基线,我们主要遵循其构建多个尺寸的模型。具体而言,类似于ResNet和ConvNeXt,InceptionNeXt也采用4-stage框架。与ConvNeXt相同,4个阶段的数量分别为[2, 2, 6, 2](atto尺寸),[3, 3, 9, 3](小尺寸)和[3, 3, 27, 3](基尺寸)。我们采用Batch Normalization,因为本文强调速度。与ConvNeXt的另一个区别在于InceptionNeXt在stage 4中使用MLP比例为3,并将节省的参数移至分类器,这有助于减少一些FLOPs(例如,基尺寸减少3%)。详细的模型配置见表。

图片

Experiment

结果

我们将InceptionNeXt与各种最先进的模型进行了比较,包括基于注意力机制和基于卷积的模型。如表4所示,InceptionNeXt在性能上具有高度竞争力,同时具有更高的速度。InceptionNeXt在准确率-速度的权衡方面始终优于ConvNeXt 。例如,InceptionNeXt-T不仅比ConvNeXt-T高出0.2%,而且在A100上的训练/推理吞吐量分别是ConvNeXt的1.6倍/1.2倍,类似于ResNet-50。也就是说,InceptionNeXt-T兼具ResNet-50的速度和ConvNeXt-T的准确率。此外,遵循Swin和ConvNeXt的做法,我们还对在224 × 224分辨率下训练的InceptionNeXt-B进行了微调,调整至384 × 384分辨率并训练30个epoch。我们可以看到,InceptionNeXt-B在保持竞争性准确率的同时,获得了比ConvNeXt-B更高的训练和推理吞吐量。

图片

除了4-stage框架,另一个显著的是ViT风格的等异性架构,其只有一个stage。为了匹配DeiT-S的参数和MACs,我们构建了InceptionNeXt-S(iso.),其设计参考了ConvNeXt-S(iso.。具体来说,我们将嵌入维度设为384,块数设为18。此外,我们还构建了一个名为MetaNeXt-Attn的模型,该模型是通过将MetaNeXt模块中的token mixer指定为自注意力机制而实例化的。此模型的目的是调查是否可以将Transformer块的两个残差子块合并为一个。实验结果如表5所示。可以看出,InceptionNeXt在等异性架构下也表现良好,证明了InceptionNeXt在不同框架下具有良好的泛化能力。值得注意的是,MetaNeXt-Attn无法收敛训练,准确率仅为3.9%。这一结果表明,与MetaFormer中的token mixer不同,MetaNeXt中的token mixer不能过于复杂,否则模型可能无法训练。

图片

在使用UpNet进行分割时,结果如表6所示。可以看到,InceptionNeXt在不同模型尺寸下始终优于Swin [39]和ConvNeXt 。在Semantic FPN方法中,如表7所示,InceptionNeXt显著超越了其他主干网络,如PVT和PoolFormer。这些结果表明,InceptionNeXt在密集预测任务中也具有很高的潜力。

图片

图片

图片

总结:

文章的贡献主要体现在两个方面:

  1. 速度瓶颈识别:通过图1展示了ConvNeXt的速度瓶颈,并提出了解决方案。

  2. Inception深度卷积:提出了一种新的深度卷积方法,将大核卷积分解为多个小核卷积,提高效率。

此外,通过在图像分类和语义分割任务上的实验验证,InceptionNeXt在速度和准确性的权衡上优于ConvNeXt,有望成为新的CNN基线,推动神经网络架构设计的进一步研究。

引用CVPR2024文章:

InceptionNeXt: When Inception Meets ConvNeXt

关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。

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

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

相关文章

java实战项目--拼图小游戏(附带全套源代码)

个人主页VON 所属专栏java实战项目游戏参考黑马程序员 一、效果展示 二、功能介绍 游戏中所有的图片以及代码均已打包,玩家直接安装游戏即可,不用idea也可以畅玩。 游戏功能比较单一,只有简单的拼图功能。 a:展示原图重新游戏&a…

《汇编语言 基于x86处理器》- 读书笔记 - 第3章-汇编语言基础

《汇编语言 基于x86处理器》- 读书笔记 - 第3章-汇编语言基础 3.1 基本语言元素3.1.1 第一个汇编语言程序常见汇编语言调用规范 3.1.2 整数常量(基数、字面量)3.1.3 整型常量表达式3.1.4 实数常量十进制实数十六进制实数(编码实数&#xff09…

USB 2.0 协议专栏之 USB 2.0 概述(一)

前言:本篇博客为手把手教学的 USB 2.0 协议栈类精品博客,该专栏博客侧重针对 USB 2.0 协议进行讲解。Universal Serial Bus 作为如今最常见的通信接口,被广泛应用于:Keyboard、Mouse、Communication Device Class 和 Mass Storage…

“论企业集成架构设计及应用”写作框架,软考高级论文,系统架构设计师论文

原创范文 论企业集成架构设计及应用企业集成架构(Enterprise Integration Arhitecture,EIA) 是企业集成平台的核心,也是解决企业信息孤岛问题的关键。企业集成架构设计包括了企业信息、业务过程、应用系统集成架构的设计。实现企业集成的技术多种多样&a…

什么是 Windows 服务

什么是 Windows 服务 Windows 服务是 Windows 操作系统的核心。它们控制着操作系统的运行,定义了图形用户界面(GUI)与系统硬件之间的通信以及其他许多功能。没有这些服务,Windows 操作系统将无法正常运行。 对普通用户而言&…

【人工智能】人工智能概述(二)人工智能的关键技术

文章目录 一. 机器学习与深度学习1. 机器学习2. 深度学习 二. 计算机视觉1. 基本概念和分类2. 未来计算机视觉面临的主要挑战 三. 自然语言处理1. 基本概念与分类2. 自然语言处理面临的四大挑战 四. 知识图谱1. 基本概念2. 应用场景 五. SLAM技术1. 基本概念2. 主要分类 六. 人…

DSP教学实验箱_数字图像处理操作_案例分享:5-13 灰度图像二值化

一、实验目的 学习灰度图像二值化的原理,掌握图像的读取方法,并实现在LCD上显示二值化前后的图像。 二、实验原理 图像二值化 图像的二值化处理就是将图像上的点的灰度置为 0 或 255,也就是将整个图像呈现出明显的黑白效果。即将 256 个亮…

AJAX(1)——axios库的使用

什么是AJAX? AJAX是异步的JavaScript和XML。简单来说,就是使用XMLHttpRequest对象与服务器通信。它可以使用JSON,XML,HTML和text文本等格式发送和接收数据。AJAX最吸引人的就是它异步的特性,也就是说它可以在不重新刷新页面的情况下与服务器通信&#…

昇思25天学习打卡营第25天|LLM应用-基于MindNLP+MusicGen生成自己的个性化音乐

打卡 目录 打卡 应用任务简介 生成音乐 预训练权重模型下载 无提示生成 文本提示生成 音频提示生成 生成配置 应用任务简介 MusicGen 来自 Meta AI 的 Jade Copet 等人提出的基于单个语言模型(LM)的音乐生成模型,能够根据文本描述或…

NFS服务器环境搭建

1、什么是NFS ● 定义: NFS是一种在计算机系统之间共享文件和目录的协议,最初由Sun Microsystems开发,现在已经成为广泛使用的网络文件系统之一。 ● 核心功能: 通过网络(特别是TCP/IP网络)实现文件共享…

微信小程序配置访问服务器失败所发现的问题及解决方案

目录 事前现象问题1:问题现象:问题分析: 问题2:问题现象:问题分析:解决方案: 事后现象 事前现象 问题1: 问题现象: 在本地调试时,一切顺利,但一…

Flink Doirs Connector 常见问题:Doris目前不支持流读

常见问题 Doris Source 在数据读取完成后,流为什么就结束了? 目前 Doris Source 是有界流,不支持 CDC 方式读取。 问题:对于 Flink Doris DataStream,Flink 想要在 流式读取 Doirs / 实时读 Doris,目前读…

03--KVM虚拟化

前言:这里开始涉及到云计算内容,虚拟化使云计算发展,云计算推动虚拟化进步,两者相辅相成,这一章总结一下kvm虚拟化的解决方案。 1、基础概念 1.1、云计算 以前要完成信息处理, 是需要在一个客观存在的计算机上完成的…

Node.js版本管理工具之NVM

目录 一、NVM介绍二、NVM的下载安装1、NVM下载2、卸载旧版Node.js3、安装 三、NVM配置及使用1、设置nvm镜像源2、安装Node.js3、卸载Node.js4、使用或切换Node.js版本5、设置全局安装路径和缓存路径 四、常用命令技术交流 博主介绍: 计算机科班人,全栈工…

卷积神经网络(一)---原理和结构

在介绍卷积神经网络之前,先提出三个观点,正是这三个观点使得卷积神经网络能够真正起作用。 1. 局部性 对于一张图片而言,需要检测图片中的特征来决定图片的类别,通常情况下这些特征都不是由整张图片决定的,而是由一些…

vscode 环境

这张截图显示的是在VS Code(Visual Studio Code)中选择Python解释器的界面。不同的Python解释器及其虚拟环境列出了可选项,用户可以根据需要选择合适的解释器来运行Python代码。以下是对截图中信息的详细解释: 解释器选择界面 当…

Chrome浏览器设置暗黑模式 - 护眼模式 - 亮度调节 - DarkReader - 地址栏和书签栏设置为黑色背景

效果图 全黑 浅灰 (DarkReader设置开启亮色亮度-25) 全白 前言 主要分两部分需要操作, 1)地址栏和书签栏 》 需要修改浏览器的外观模式 2)页面主体 》 需要安装darkreader插件进行设置 步骤 1)地址栏和…

AOP面向切面编程和log4j的使用(Java版)

什么是面向切面编程 在传统的面向对象编程中,程序的功能被模块化成各个类和方法,这些类和方法分别处理特定的功能。然而,有些功能可能涉及到多个类、多个方法,例如日志记录、事务管理、性能监控等,这些功能可能在不同…

橙单后端项目下载编译遇到的问题与解决

今天下载orange-admin项目&#xff0c;不过下载下来运行出现一些问题。 1、涉及到XMLStreamException的几个类都出现下面的错误 The package javax.xml.stream is accessible from more than one module: <unnamed>, java.xml ctrl-shift-t 可以找到这个引入是哪些包里…

AcWing803. 区间合并

#include<climits>的作用是方便我直接使用INT_MIN,下面这个代码是二刷写的 思路是先根据 [ L , R ] i [L,R]_i [L,R]i​的L先排序&#xff0c;然后遍历vector进行区间合并。 #include<iostream> #include<vector> #include<algorithm> #include<cl…