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

news2024/11/17 6:34:01

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.coloradmin.cn/o/1956102.html

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

相关文章

环境配置—批量删除时提示/usr/bin/rm: Argument list too long问题

文章目录 1. 背景介绍2. 问题原因3. 解决方案3.1 分批删除文件3.2 使用 find 命令直接删除3.3 增加系统参数限制3.4 使用循环删除 4. 结论 1. 背景介绍 在Linux系统中,rm 命令是删除文件和目录的常用工具。然而,当需要删除大量文件时,可能会…

【CPS出版】2024年智能计算与数据分析国际学术会议(ICDA 2024,9月6日-8)

为探讨数据科学和计算智能领域的关键问题,促进相关交流,2024年智能计算与数据分析国际学术会议(ICDA 2024)将于2024年9月6日-8日在中国青岛召开。 本届会议拟邀请数据分析和计算智能领域的顶级专家、学者和产业界优秀人才,围绕当前…

党员管理系统2024(代码+论文+ppt)

下载在最后 技术栈: ssmmysql 展示: 下载地址: CSDN现在上传有问题,有兴趣的朋友先收藏.正常了贴上下载地址 备注:

Hive环境搭建(Mysql数据库)

【实验目的】 1) 了解hive的作用 2) 熟练hive的配置过程(Mysql数据库) 【实验原理】 Hive工具中默认使用的是derby数据库,该数据库使用简单,操作灵活,但是存在一定的局限性,hive支持使用第三方数据库&…

探索C++中的多态性:理解虚函数和运行时多态

前言: 在现代软件开发中,面向对象编程(OOP)已经成为了主流。其中一个强大的概念就是多态性(Polymorphism),它不仅仅是一种技术,更是一种设计思想和实现方式,为软件开发带…

Python批量采集某东评论,实现可视化分析

女朋友没事就喜欢网购,买一大堆又不用,总说不合适,为了不让她花冤枉钱,于是我决定用Python写一个采集商品评论的脚本,然后对商品进行分析,这样就不怕踩到坑了! 让我们直接开始本次操作 准备工作…

PPT模板背景音乐去除攻略:3个方法教你轻松删除自带背景乐!

PPT模板中自带的背景乐却找不到明显的播放图标,同时在幻灯片切换效果中也已选择“无声音”,但播放时仍有背景乐,这可能是由于音乐被嵌入到了幻灯片母版中。 针对这种情况,以下是一些去掉背景音乐的步骤: 方法一&…

【C++】C++11的新特性 --- lambda表达式 ,新的类功能,模块的可变参数 , emplace系列接口

如果你停止,就是谷底! 如果你还在继续,就是上坡! 这是我听过关于人生低谷最好的阐述。 -- 刘同 C11的新特性 1 lambda表达式1.1 基本用法1.2 细谈参数列表与捕捉列表 2 新的类功能2.1 移动构造与移动赋值2.2 default和delete 3 模块的可变参数4 emplace系列接口Thanks♪(&…

国防科技大学深圳地区新生欢送会圆满举行

2024年7月28日,第97个八一建军节来临之际,在这个充满希望的盛夏时节,深圳地区迎来了13名即将踏入国防科技大学的优秀学子。 为了庆祝这一荣耀时刻,并表达对新生的深切祝福,在国防科技大学深圳校友会黄丹会长的积极倡议…

小白也能读懂的ConvLSTM!(开源pytorch代码)

ConvLSTM 1. 算法简介与应用场景2. 算法原理2.1 LSTM基础2.2 ConvLSTM原理2.2.1 ConvLSTM的结构2.2.2 卷积操作的优点 2.3 LSTM与ConvLSTM的对比分析2.4 ConvLSTM的应用 3. PyTorch代码参考文献 仅需要网络源码的可以直接跳到末尾即可 1. 算法简介与应用场景 ConvLSTM&#x…

“手撕”MySQL的索引

目录 二、索引的作用 三、索引的缺点 四、如何使用索引 查看索引: 创建索引: ​编辑 删除索引: 五、索引的底层原理 那什么是B树,什么是B树呢? B树的好处: 总结: 一、什么是索引 索…

OpenCV 图像预处理—图像金字塔

文章目录 相关概念高斯金字塔拉普拉斯金字塔应用 构建高斯金字塔为什么要对当前层进行模糊?1. 平滑处理2. 减少混叠(Aliasing)3. 多尺度表示4. 图像降采样 举个栗子创建高斯金字塔和拉普拉斯金字塔,并用拉普拉斯金字塔恢复图像 相…

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

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

使用git命令行的方式,将本地项目上传到远程仓库

在国内的开发环境中,git的使用是必不可少的。Git 是一款分布式版本控制系统,用于有效管理和追踪文件的变更历史及协作开发。本片文章就来介绍一下怎样使用git命令行的方式,将本地项目上传到远程仓库,虽然现在的IDE中基本都配置了g…

Ubuntu安装terminator教程

Terminator 是一个高级的终端仿真器,专为 Linux 和 Unix 系统设计。它的主要特点是提供了丰富的多窗口和多标签功能,使用户能够在一个窗口中管理多个终端会话。这对于系统管理员、开发人员以及需要同时运行多个命令行任务的用户来说,极为方便。 一、安装 1、更新包 sudo a…

使用Selenium爬虫批量下载AlphaFold数据库中的PDB文件

注意:本方法使用了python,下载速度一般,如果需要更快的大批量下载可以考虑使用其他方法,例如FTP Alphafold数据库其实提供了许多物种的蛋白质组: AlphaFold Protein Structure Database 但是如果你搜索的物种不在这个…

算法面试leadcode【经典150道】

88 合并两个有序数组 方法一 使用arraycopy排序 * 思路一:将nums2合并到nums1的尾部,再直接进行排序。* 使用arraycopy(int[]nums1,int m,int[] nums2,int n)* 方法来进行排序,* 从原数组的哪个位置,移动到原数组的哪个位置&#…

xxl-job适配达梦数据库并制作镜像、源码部署xxl-job

背景:因项目需要信创,需将原本的mysql数据库,改成达梦数据库 一、部署达梦数据库 1.1 部署达梦数据库服务 可参考:Docker安装达梦数据库_达梦数据库docker镜像-CSDN博客 PS:部署达梦数据库时,需加上大小…

Java | Leetcode Java题解之第300题最长递增子序列

题目&#xff1a; 题解&#xff1a; class Solution {public int lengthOfLIS(int[] nums) {int len 1, n nums.length;if (n 0) {return 0;}int[] d new int[n 1];d[len] nums[0];for (int i 1; i < n; i) {if (nums[i] > d[len]) {d[len] nums[i];} else {int…