论文分享 A ConvNet for the 2020s

摘要

视觉识别的“咆哮的 20 年代”始于 Vision Transformers (ViTs) 的引入,它迅速取代了 ConvNets,成为最先进的图像分类模型。另一方面,vanilla ViT 在应用于对象检测和语义分割等一般计算机视觉任务时面临困难。正是层次化的 Transformers(例如 Swin Transformers)重新引入了几个 ConvNet 先验,使得 Transformers 作为通用视觉骨干实际上可行,并在各种视觉任务上展示了卓越的性能。然而,这种混合方法的有效性在很大程度上仍然归功于 Transformers 的内在优势,而不是卷积固有的归纳偏差。

在这项工作中,我们重新检查设计空间并测试纯 ConvNet 可以达到的极限。我们逐步“现代化”标准 ResNet 以设计视觉 Transformer,并发现几个导致性能差异的关键组件。这一探索的成果是一系列被称为 ConvNeXt 的纯 ConvNet 模型。 ConvNeXts 完全由标准的 ConvNet 模块构建而成,在准确性和可扩展性方面与 Transformers 相得益彰,在 COCO 检测和 ADE20K 分割方面实现了 87.8% 的 ImageNet top-1 准确性并优于 Swin Transformers,同时保持了标准 ConvNets 的简单性和效率。

在这里插入图片描述
图 1. 紫圈 ConvNets 和 黄圈 vision Transformers 的 ImageNet-1K 分类结果。每个气泡的面积与模型系列中变体的 FLOPs 成正比。此处的 ImageNet-1K/22K 模型分别使用 22 4 2 / 38 4 2 224^2 / 384^2 2242/3842 尺寸图像。 ResNet 和 ViT 结果是通过改进原始论文的训练程序获得的。我们证明了标准的 ConvNet 模型可以实现与分层视觉 Transformer 相同级别的可扩展性,同时在设计上要简单得多。

2. 现代化 ConvNet:路线图

我们探索的路线图如下。我们的起点是 ResNet-50 模型。我们首先使用用于训练视觉 Transformers 的类似训练技术对其进行训练,并获得比原始 ResNet-50 有很大改进的结果。这将是我们的基准。然后,我们研究了一系列设计决策,我们将其总结为

  1. 宏设计,2) ResNeXt,3) 倒置瓶颈,4) 大内核大小,以及 5) 各种分层微设计。

在图 2 中,我们展示了“网络现代化”的每一步我们能够实现的过程和结果。由于网络复杂性与最终性能密切相关,因此在探索过程中可以大致控制 FLOP,但在中间步骤中,FLOP 可能高于或低于参考模型。所有模型都在 ImageNet-1K 上进行训练和评估。

在这里插入图片描述
图 2. 我们将标准 ConvNet (ResNet) 现代化以设计分层视觉 Transformer (Swin),而不引入任何基于注意力的模块。前景条是 ResNet-50/Swin-T FLOP 体系中的模型精度; ResNet-200/Swin-B 方案的结果用灰色条显示。阴影条表示未采用修改。两种制度的详细结果见附录。许多 Transformer 架构选择可以合并到 ConvNet 中,它们会带来越来越好的性能。最后,我们名为 ConvNeXt 的纯 ConvNet 模型可以胜过 Swin Transformer。

2.1 训练技巧

除了网络架构的设计,训练过程也会影响最终的性能。 Vision Transformers 不仅带来了一组新的模块和架构设计决策,而且还向视觉引入了不同的训练技术(例如 AdamW 优化器)。这主要与优化策略和相关的超参数设置有关。因此,我们探索的第一步是使用视觉 Transformer 训练程序训练基线模型,在本例中为 ResNet50/200。最近的研究 [7, 81] 表明,一组现代训练技术可以显着提高简单 ResNet-50 模型的性能。在我们的研究中,我们使用了接近 DeiT 的 [73] 和 Swin Transformer 的 [45] 的训练方法。训练从 ResNets 最初的 90 个时期扩展到 300 个时期。我们使用 AdamW 优化器 [46]、数据增强技术,例如 Mixup [90]、Cutmix [89]、RandAugment [14]、随机擦除 [91],以及包括随机深度 [36] 和标签平滑 [69] 在内的正则化方案.我们使用的完整超参数集可以在附录 A.1 中找到。

就其本身而言,这种增强的训练方法将 ResNet-50 模型的性能从 76.1% [1] 提高到 78.8% (+2.7%),这意味着传统 ConvNet 和视觉 Transformer 之间的性能差异很大一部分可能是由于训练技巧。我们将在整个“现代化”过程中使用具有相同超参数的固定训练方法。 ResNet-50 机制的每个报告准确度都是从使用三个不同随机种子的训练中获得的平均值。

2.2.宏设计

我们现在分析 Swin Transformers 的宏观网络设计。 Swin Transformers 遵循 ConvNets [28, 65] 使用多阶段设计,其中每个阶段都有不同的特征图分辨率。有两个有趣的设计考虑因素:阶段计算比率和“起始层(stem cell)”结构。

改变阶段计算比率。 ResNet 中跨阶段计算分布的原始设计主要是经验性的。重型“res4”阶段旨在与目标检测等下游任务兼容,其中检测头在 14×14 特征平面上运行。另一方面,Swin-T 遵循相同的原则,但阶段计算比率略有不同,为 1:1:3:1。对于较大的 Swin Transformers ,比例为 1:1:9:1。按照设计,我们将每个阶段的块数从 ResNet-50 中的 (3, 4, 6, 3) 调整为 (3, 3, 9, 3),这也使 FLOPs 与 Swin-T 对齐。这将模型准确率从 78.8% 提高到 79.4%。值得注意的是,研究人员已经彻底研究了计算的分布 [53、54],并且可能存在更优化的设计。从现在开始,我们将使用这个阶段计算比率。

“补丁化”起始层。通常,起始层设计关注的是在网络开始时如何处理输入图像。由于自然图像固有的冗余性,普通起始层会在标准 ConvNet 和视觉 Transformer 中积极地将输入图像下采样到适当的特征图大小。标准 ResNet 中的起始层包含一个步幅为 2 的 7×7 卷积层,后跟一个最大池化,这导致输入图像的 4× 下采样。在 Vision Transformers 中,更激进的“patchify”策略被用作起始层,这对应于较大的内核大小(例如内核大小 = 14 或 16) 和非重叠卷积。Swin Transformer 使用类似的“补丁化”层,但补丁大小更小,为 4,以适应架构的多阶段设计。我们用使用 4×4、步长 4 的卷积层实现的“补丁化“”层替换 ResNet 风格的起始层。准确率从 79.4% 变为 79.5%。这表明 ResNet 中的起始层可以用更简单的“补丁化”层代替,这将导致类似的性能。我们将在网络中使用“补丁化起始层”(4×4 非重叠卷积)

2.3. ResNeXt-ify

在这一部分中,我们尝试采用 ResNeXt [87] 的想法,它比普通的 ResNet 具有更好的 FLOPs/accuracy 权衡。核心组件是分组卷积,其中卷积滤波器被分成不同的组。在高层次上,ResNeXt 的指导原则是“使用更多组,扩大宽度”。更准确地说,ResNeXt 对瓶颈块中的 3×3 卷积层采用分组卷积。由于这显着减少了 FLOP,因此扩展了网络宽度以补偿容量损失。

在我们的例子中,我们使用深度卷积,这是分组卷积的一种特殊情况,其中组数等于通道数。 Depthwise conv 已被 MobileNet [34] 和 Xception [11] 推广。我们注意到 depthwise convolution 类似于 self-attention 中的加权求和操作,它在每个通道的基础上操作,即仅在空间维度上混合信息。depthwise conv 和 1 × 1 convs 的结合导致了空间和通道混合的分离,这是视觉 Transformers 共有的一个属性,其中每个操作要么混合空间或通道维度的信息,但不能同时混合两者。深度卷积的使用有效地降低了网络的 FLOPs,并且如预期的那样降低了准确性。

按照 ResNeXt 中提出的策略,我们将网络宽度增加到与 Swin-T 相同的通道数(从 64 增加到 96)。随着 FLOPs (5.3G) 的增加,这使网络性能达到 80.5%。我们现在将采用 ResNeXt 设计。

2.4. 倒置瓶颈

每个 Transformer 块中的一个重要设计是它会产生一个倒置瓶颈,即 MLP 块的隐藏维度比输入维度宽四倍(见图 4)。有趣的是,这种 Transformer 设计与 ConvNet 中使用的扩展率为 4 的倒置瓶颈设计相关联。这个想法由 MobileNetV2 [61] 推广,随后在几个高级 ConvNet 架构 [70、71] 中获得了关注。

在这里插入图片描述
图 4. ResNet、Swin Transformer 和 ConvNeXt 的模块设计。由于存在多个专用模块和两个残差连接,Swin Transformer 的块更加复杂。为简单起见,我们将 Transformer MLP 块中的线性层也称为“1×1 convs”,因为它们是等价的。

在这里,我们探索倒置瓶颈设计。图 3 (a) 至 (b) 说明了这些配置。尽管深度卷积层的 FLOPs 增加了,但由于下采样残差块的快捷 1×1 conv 层的 FLOPs 显着减少,这一变化将整个网络的 FLOPs 减少到 4.6G。有趣的是,这导致性能略有提高(80.5% 到 80.6%)。在 ResNet-200 / Swin-B 体系中,这一步带来了更多收益(81.9% 到 82.6%),同时减少了 FLOP。我们现在将使用倒置瓶颈。

在这里插入图片描述
图 3. 块修改和结果规范。a) 是一个 ResNeXt 块,在 b) 中我们创建了一个倒置的瓶颈块,在 c)中空间深度卷积层的位置向上移动。

2.5.大卷积核尺寸

在这部分探索中,我们关注大卷积核的行为。 Vision Transformers 最显着的方面之一是它们的非局部自注意力,这使得每一层都具有全局感受野。虽然 ConvNets [40, 68] 过去曾使用大内核大小,但黄金标准(由 VGGNet [65] 推广)是堆叠小内核大小 (3×3) 的卷积层,这在硬件上具有高效的硬件实现现代 GPU [41]。尽管 Swin Transformers 将局部窗口重新引入到自注意力块中,但窗口大小至少为 7×7,明显大于 ResNe(X)t 内核大小的 3×3。在这里,我们重新审视了 ConvNets 的大核尺寸卷积的使用。

向上移动深度卷积层。要探索大内核,一个先决条件是将深度卷积层的位置上移(图 3 (b) 至 ©)。这是一个在 Transformers 中也很明显的设计决策:MSA 块放置在 MLP 层之前。由于我们有一个倒置的瓶颈块,这是一个自然的设计选择——复杂/低效的模块(MSA,大核卷积)将有更少的通道,而高效、密集的 1×1 层将完成繁重的工作。这个中间步骤将 FLOP 减少到 4.1G,导致性能暂时下降到 79.9%。

增加内核大小。通过所有这些准备工作,采用更大内核大小的卷积的好处是显着的。我们试验了几种内核大小,包括 3、5、7、9 和 11。网络的性能从 79.9% (3×3) 提高到 80.6% (7×7),而网络的 FLOPs 大致保持不变。此外,我们观察到较大内核大小的好处在 7×7 时达到饱和点。我们也在大容量模型中验证了这种行为:当我们将内核大小增加到超过 7×7 时,ResNet-200 状态模型没有表现出进一步的增益。我们将在每个块中使用 7×7 depthwise conv。

至此,我们已经结束了对宏观网络架构的研究。有趣的是,在视觉 Transformer 中采用的很大一部分设计选择可能会映射到 ConvNet 实例。

2.6.微设计

在本节中,我们在微观尺度上研究了其他几个架构差异——这里的大部分探索都是在层级完成的,重点是激活函数和归一化层的特定选择。

用 GELU 替换 ReLU。 NLP 和视觉架构之间的一个差异是使用哪些激活函数的细节。随着时间的推移,已经开发出许多激活函数,但整流线性单元 (ReLU) [49] 由于其简单和高效,仍广泛用于 ConvNets。 ReLU 在原始的 Transformer 论文 [77] 中也被用作激活函数。高斯误差线性单元,或 GELU [32],可以被认为是 ReLU 的更平滑的变体,被用于最先进的 Transformer,包括谷歌的 BERT [18] 和 OpenAI 的 GPT-2 [52],并且,大多数最近,ViTs。我们发现 ReLU 也可以在我们的 ConvNet 中用 GELU 代替,尽管准确率保持不变 (80.6%)。

更少的激活函数。 Transformer 和 ResNet 块之间的一个小区别是 Transformers 具有更少的激活函数。考虑一个具有键/查询/值线性嵌入层、投影层和 MLP 块中的两个线性层的 Transformer 块。 MLP 块中只有一个激活函数。相比之下,通常的做法是将激活函数附加到每个卷积层,包括 1×1 卷积层。在这里,我们研究了当我们坚持相同的策略时性能如何变化。如图 4 所示,我们从残差块中消除了所有 GELU 层,除了两个 1×1 层之间的一个,复制了 Transformer 块的样式。此过程将结果提高 0.7% 至 81.3%,几乎与 Swin-T 的性能相匹配。我们现在将在每个块中使用单个 GELU 激活。

更少的归一化层。 Transformer 块通常也有较少的归一化层。这里我们移除了两个 BatchNorm (BN) 层,在 conv 1×1 层之前只留下一个 BN 层。这进一步将性能提升到 81.4%,已经超过了 Swin-T 的结果。请注意,我们每个块的归一化层比 Transformer 更少,因为根据经验我们发现在块的开头添加一个额外的 BN 层不会提高性能。

用 LN 代替 BN。 BatchNorm [38] 是 ConvNets 中的重要组成部分,因为它可以提高收敛性并减少过度拟合。然而,BN 也有许多复杂性,可能会对模型的性能产生不利影响 [84]。在开发替代规范化 [60、75、83] 技术方面进行了多次尝试,但 BN 仍然是大多数视觉任务中的首选。另一方面,Transformer 中使用了更简单的层归一化 [5] (LN),从而在不同的应用场景中获得了良好的性能。在原始 ResNet 中直接用 LN 代替 BN 会导致性能不佳 [83]。随着网络架构和训练技术的所有修改,我们在这里重新审视使​​用 LN 代替 BN 的影响。我们观察到我们的 ConvNet 模型在使用 LN 进行训练时没有任何困难;事实上,性能稍微好一点,获得了 81.5% 的准确率。从现在开始,我们将使用一个 LayerNorm 作为每个残差块中归一化的选择。

分离的下采样层。在 ResNet 中,空间下采样是通过每个阶段开始时的残差块实现的,使用步幅为 2 的 3×3 conv(在快捷连接处使用步幅为 2 的 1×1 conv)。在 Swin Transformers 中,在阶段之间添加了一个单独的下采样层。我们探索了一种类似的策略,其中我们使用步长为 2 的 2×2 卷积层进行空间下采样。这种修改令人惊讶地导致了不同的培训。进一步的研究表明,在空间分辨率发生变化的地方添加归一化层有助于稳定训练。其中包括 Swin Transformers 中也使用的几个 LN 层:一个在每个下采样层之前,一个在 stem 之后,一个在最终的全局平均池之后。我们可以将准确率提高到 82.0%,大大超过 Swin-T 的 81.3%。我们将使用分离的下采样层。这将我们带到了我们称之为 ConvNeXt 的最终模型。

ResNet、Swin 和 ConvNeXt 块结构的比较可以在图 4 中找到。ResNet-50、Swin-T 和 ConvNeXt-T 的详细架构规范的比较可以在表 9 中找到。
在这里插入图片描述

结束语

我们已经完成了我们的第一个“演练”并发现了 ConvNeXt,一个纯 ConvNet,在这个计算机制中它可以胜过 Swin Transformer 的 ImageNet-1K 分类。值得注意的是,到目前为止讨论的所有设计选择都改编自视觉Transformer 。此外,即使在 ConvNet 文献中,这些设计也并不新颖——在过去十年中,它们都是单独研究的,而不是集中研究的。我们的 ConvNeXt 模型具有与 Swin Transformer 大致相同的 FLOPs、#params.、吞吐量和内存使用,但不需要专门的模块,例如移位窗口注意力或相对位置偏差。

这些发现令人鼓舞,但尚未完全令人信服——到目前为止,我们的探索仅限于小规模,但 Vision Transformers 的缩放行为才是真正与众不同的地方。此外,ConvNet 是否可以在目标检测和语义分割等下游任务上与 Swin Transformers 竞争是计算机视觉从业者关注的中心问题。在下一节中,我们将在数据和模型大小方面扩展我们的 ConvNeXt 模型,并在一组不同的视觉识别任务上对其进行评估。

3. ImageNet 上的实证评估

我们构建了不同的 ConvNeXt 变体,ConvNeXtT/S/B/L,其复杂性与 Swin-T/S/B/L [45] 相似。ConvNeXt-T/B 分别是 ResNet-50/200 制度“现代化”程序的最终产品。此外,我们构建了一个更大的 ConvNeXt-XL 来进一步测试 ConvNeXt 的可扩展性。这些变体仅在通道数 C 和每个阶段中的块数 B 上有所不同。在 ResNets 和 Swin Transformers 之后,通道数量在每个新阶段都会翻一番。我们总结了以下配置:

• ConvNeXt-T: C = (96, 192, 384, 768), B = (3, 3, 9, 3)
• ConvNeXt-S: C = (96, 192, 384, 768), B = (3, 3, 27, 3)
• ConvNeXt-B: C = (128, 256, 512, 1024), B = (3, 3, 27, 3)
• ConvNeXt-L: C = (192, 384, 768, 1536), B = (3, 3, 27, 3)
• ConvNeXt-XL: C = (256, 512, 1024, 2048), B = (3, 3, 27, 3)

3.1.设置

ImageNet-1K 数据集由 1000 个对象类和 120 万张训练图像组成。我们在验证集上报告了 ImageNet-1K top-1 准确率。我们还在 ImageNet-22K 上进行了预训练,这是一个包含 21841 个类(1000 个 ImageNet-1K 类的超集)的更大数据集,具有约 14M 图像用于预训练,然后在 ImageNet 上微调预训练模型- 1K 用于评估。我们在下面总结了我们的培训设置。可以在附录 A 中找到更多详细信息。

在这里插入图片描述

在 ImageNet-1K 上训练。我们使用学习率为 4e-3 的 AdamW [46] 训练 ConvNeXts 300 个时期。之后有 20 个 epoch 的线性预热和余弦衰减策略。我们使用 4096 的批量大小和 0.05 的权重衰减。对于数据扩充,我们采用常见的方案,包括 Mixup [90]、Cutmix [89]、RandAugment [14] 和 Random Erasing [91]。我们使用随机深度 [37] 和标签平滑 [69] 对网络进行正则化。应用初始值 1e-6 的Layer Scale [74]。我们使用指数移动平均线 (EMA) [51],因为我们发现它可以缓解较大模型的过度拟合。在 ImageNet-22K 上进行预训练。我们在 ImageNet-22K 上预训练 ConvNeXts 90 个 epochs,预热 5 个 epochs。我们不使用 EMA。其他设置遵循 ImageNet-1K。

在 ImageNet-1K 上进行微调。我们在 ImageNet-1K 上微调 ImageNet22​​K 预训练模型 30 个时期。我们使用 AdamW,学习率为 5e-5,余弦学习率计划,逐层学习率衰减 [6, 12],无预热,批量大小为 512,权重衰减为 1e-8。默认的预训练、微调和测试分辨率为 2242 。此外,对于 ImageNet-22K 和 ImageNet-1K 预训练模型,我们以更大的分辨率 3842 进行微调。

与 ViTs/Swin Transformers 相比,ConvNeXts 在不同分辨率下更容易微调,因为网络是全卷积的,不需要调整输入块大小或插入绝对/相对位置偏差。

3.2.结果

ImageNet-1K。表 1(上)显示了与两个最近的 Transformer 变体 DeiT [73] 和 Swin Transformers [45],以及来自架构搜索的两个 ConvNets - RegNets [54],EfficientNets [71] 和 EfficientNetsV2 [72] 的结果比较。 ConvNeXt 在准确性计算权衡以及推理吞吐量方面与两个强大的 ConvNet 基线(RegNet [54] 和 EfficientNet [71])竞争有利。 ConvNeXt 的性能也全面优于具有类似复杂性的 Swin Transformer,有时还具有可观的利润率(例如,ConvNeXt-T 为 0.8%)。与 Swin Transformers 相比,ConvNeXts 在没有移动窗口或相对位置偏差等专门模块的情况下也享有更高的吞吐量

结果中的一个亮点是 ConvNeXt-B 在 38 4 2 384^2 3842:它比 Swin-B 高 0.6%(85.1% 对 84.5%),但推理吞吐量高 12.5%(95.7 对 85.1 图像/秒)。我们注意到,当分辨率从 22 4 2 224^2 2242 增加到 38 4 2 384^2 3842时,ConvNeXt B 相对于 Swin-B 的 FLOPs/throughput 优势变得更大。此外,当进一步扩展到 ConvNeXt-L 时,我们观察到 85.5% 的改进结果。

在这里插入图片描述
在这里插入图片描述
表 1.ImageNet-1K 上的分类精度。与 Transformers 类似,ConvNeXt 还展示了具有更高容量模型和更大(预训练)数据集的有前途的缩放行为。按照 [45],在 V100 GPU 上测量推理吞吐量。在 A100 GPU 上,ConvNeXt 可以比 Swin Transformer 具有更高的吞吐量。请参阅附录 E。 ViT 结果与 90-epoch AugReg [67] 培训,通过与作者的个人交流提供。

ImageNet-22K。我们在表 1(下)中展示了从 ImageNet-22K 预训练中微调的模型的结果。这些实验很重要,因为广泛持有的观点是,视觉 Transformer 具有较少的归纳偏差,因此在进行更大规模的预训练时可以比 ConvNet 表现更好。

我们的结果表明,在使用大型数据集进行预训练时,正确设计的 ConvNets 并不逊色于视觉 Transformers——ConvNeXts 的性能仍然与类似大小的 Swin Transformers 相当或更好,吞吐量略高。此外,我们的 ConvNeXt-XL 模型达到了 87.8% 的准确率——比 38 4 2 384^2 3842 的 ConvNeXt-L 有了不错的改进,表明 ConvNeXts 是可扩展的架构。在 ImageNet-1K、EfficientNetV2-L 上,配备高级模块(例如 Squeeze-andExcitation [35])和渐进式训练程序的搜索架构实现了最佳性能。然而,通过 ImageNet-22K 预训练,ConvNeXt 能够胜过 EfficientNetV2,进一步证明了大规模训练的重要性。在附录 B 中,我们讨论了 ConvNeXt 的稳健性和域外泛化结果。

3.3.各向同性 ConvNeXt 与 ViT

在此消融中,我们检查我们的 ConvNeXt 块设计是否可推广到 ViT 风格 [20] 各向同性架构,这些架构没有下采样层并在所有深度保持相同的特征分辨率(例如 14×14)。我们使用与 ViT-S/B/L (384/768/1024) 相同的特征维度构建各向同性 ConvNeXt-S/B/L。深度设置为 18/18/36 以匹配参数和 FLOP 的数量。块结构保持不变(图 4)。我们对 ViT-S/B 使用 DeiT [73] 的监督训练结果,对 ViT-L 使用 MAE [26] 的监督训练结果,因为它们在原始 ViTs [20] 上采用了改进的训练程序。 ConvNeXt 模型使用与之前相同的设置进行训练,但预热时间更长。 ImageNet-1K 在 22 4 2 224^2 2242 分辨率下的结果如表 2 所示。我们观察到 ConvNeXt 的性能通常与 ViT 相当,表明我们的 ConvNeXt 块设计在用于非分层模型时具有竞争力。

在这里插入图片描述
表 2. 比较各向同性 ConvNeXt 和 ViT。训练内存是在 V100 GPU 上测量的,每个 GPU 批大小为 32。

4. 下游任务的实证评估

COCO 上的目标检测和分割。我们使用 ConvNeXt 骨干在 COCO 数据集上微调 Mask R-CNN [27] 和 Cascade Mask R-CNN [9]。在 Swin Transformer [45] 之后,我们使用多尺度训练、AdamW 优化器和 3× schedule。可以在附录 A.3 中找到更多详细信息和超参数设置。

表 3 显示了比较 Swin Transformer、ConvNeXt 和传统 ConvNet(如 ResNeXt)的对象检测和实例分割结果。在不同的模型复杂性中,ConvNeXt 实现了与 Swin Transformer 相当或更好的性能。当放大到在 ImageNet-22K 上预训练的更大模型 (ConvNeXt-B/L/XL) 时,在许多情况下,ConvNeXt 在框和掩码 AP 方面明显优于 Swin Transformers(例如 +1.0 AP)。

在这里插入图片描述
表 3. 使用 Mask-RCNN 和 Cascade Mask-RCNN 的 COCO 目标检测和分割结果。 ‡ 表示该模型已在 ImageNet-22K 上预训练。 ImageNet-1K 预训练的 Swin 结果来自他们的 Github 存储库 [3]。 ResNet-50 和 X101 模型的 AP 编号来自 [45]。我们在 A100 GPU 上测量 FPS。 FLOP 是根据图像大小 (1280, 800) 计算的。

ADE20K 上的语义分割。我们还使用 UperNet [85] 在 ADE20K 语义分割任务上评估 ConvNeXt 主干。所有模型变体都经过 160K 次迭代的训练,批量大小为 16。其他实验设置遵循 [6](有关更多详细信息,请参见附录 A.3)。在表 4 中,我们报告了使用多尺度测试的验证 mIoU。 ConvNeXt 模型可以在不同的模型能力上取得有竞争力的性能,进一步验证了我们架构设计的有效性。

关于模型效率的评论。在类似的 FLOPs 下,已知具有深度卷积的模型比仅具有密集卷积的 ConvNets 更慢并且消耗更多内存。很自然地会问 ConvNeXt 的设计是否会使其实际上效率低下。正如整篇论文所证明的那样,ConvNeXts 的推理吞吐量与 Swin Transformers 相当或超过它。这对于需要更高分辨率输入的分类和其他任务都是如此(有关吞吐量/FPS 的比较,请参见表 1,3)。此外,我们注意到训练 ConvNeXts 比训练 Swin Transformers 需要更少的内存。例如,使用 ConvNeXt-B 主干训练 Cascade Mask-RCNN 消耗 17.4GB 的峰值内存,每个 GPU 批处理大小为 2,而 Swin-B 的参考数为 18.5GB。与 vanilla ViT 相比,ConvNeXt 和 Swin Transformer 由于本地计算而表现出更有利的精度-FLOPs 权衡。值得注意的是,这种效率提升是 ConvNet 归纳偏差的结果,与视觉 Transformers 中的自注意力机制没有直接关系。

5. 相关工作

混合模型。在 ViT 之前和之后的时代,结合卷积和自注意力的混合模型得到了积极的研究。在 ViT 之前,重点是用自注意力/非本地模块 [8、55、66、79] 来增强 ConvNet 以捕获远程依赖性。最初的 ViT [20] 首先研究了一种混合配置,大量后续工作专注于将卷积先验重新引入 ViT,无论是显式 [15, 16, 21, 82, 86, 88] 还是隐式 [45 ] 时尚。

最近基于卷积的方法。 Han 等人 [25] 表明局部 Transformer 注意力等同于非均匀动态深度转换。然后将 Swin 中的 MSA 块替换为动态或常规深度卷积,实现与 Swin 相当的性能。并行工作 ConvMixer [4] 表明,在小规模设置中,深度卷积可以用作一种有前途的混合策略。 ConvMixer 使用较小的 patch size 来获得最好的结果,使得吞吐量远低于其他基线。 GFNet [56] 采用快速傅立叶变换 (FFT) 进行token混合。 FFT 也是一种卷积形式,但具有全局内核大小和圆形填充。与许多最近的 Transformer 或 ConvNet 设计不同,我们研究的一个主要目标是深入了解标准 ResNet 现代化和实现最先进性能的过程。

6. 结论

在 2020 年代,视觉 Transformers,尤其是像 Swin Transformers 这样的层次结构,开始取代 ConvNets 成为通用视觉主干的首选。人们普遍认为,视觉 Transformer 比 ConvNet 更准确、高效和可扩展。我们提出了 ConvNeXts,这是一种纯 ConvNet 模型,可以在多个计算机视觉基准测试中与最先进的分层视觉 Transformer 竞争,同时保留标准 ConvNet 的简单性和效率。在某些方面,我们的观察结果令人惊讶,而我们的 ConvNeXt 模型本身并不是全新的——在过去十年中,许多设计选择都被单独检查过,但没有一起检查过。我们希望这项研究报告的新结果将挑战几个广泛持有的观点,并促使人们重新思考卷积在计算机视觉中的重要性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝奥声核心技术分享——无线同步群控技术

1.技术背景 无线同步群控技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策,属于蓝奥声核心技术--边缘协同感知(EICS)技术的关键支撑性技术之一。该项技术涉及无线物联网边缘域网络的无线通信与智能控制技术领域,具体主要…

【2023 · CANN训练营第一季】昇腾AI入门课(TensorFlow)第三章——AI应用开发

1.具备编程经验 本课程中的示例代码、练习涉及C&C语言、Python语言的如下基础知识,建议您在学习本课程前先学习这部分内容 1.C&C语言 a.变量、基本数据类型、指针、引用、const限定符等 b,字符串和数组 c.表达式,包括赋值运算、条件…

华为OD机试真题 Java 实现【统计匹配的二元组个数】【2023Q2 200分】

一、题目描述 给定两个数组A和B,若数组A的某个元素A[i]与数组B中的某个元素B[j]满足 A[i] B[j],则寻找到一个值匹配的二元组(i, j)。 请统计在这两个数组A和B中,一共存在多少个这样的二元组。 二、输入描述 第一行输入数组A的长度M&…

python---变量(2)

此处,首次使用“”对a进行设置值,也就是对a的初始化。 后续位置对a使用“”,实际上是对a赋值。 因此两行代码得到的结果显然是不同的! 变量的种类 1.整数-int-根据数据大小自动扩容 python中的变量类型不需要显示声明&#…

9:00进去,9:05就出来了,这问的也太变态了···

从外包出来,没想到死在另一家厂子了。 自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到5月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推…

扬帆起航——Qt自定义控件介绍

文章目录 前言自定义控件的定义自定义控件的好处如何实现自定义控件实现没有自带的控件 如何使用自定义控件测试和优化常见的自定义控件总结 前言 Qt 提供了丰富的控件、工具和库,可以帮助开发人员快速创建现代化的跨平台应用程序。但是对于某些特殊的需求&#xf…

Fourier分析入门——第7章——采样理论

目录 第 7 章 采样定理 7.1 引言 7.2 采样定理 7.3 错误识别(aliasing) 7.4 Parseval定理(Parseval[pzeifa:l]) 7.5 截断Fourier级数和回归理论(Truncated Fourier Series & Regression Theory) 第 7 章 采样定理 7.1 引言 在第 6 章中,我们发现有限区…

【大数据学习篇10】Spark项目实战~网站转化率统计

学习目标/Target 掌握网站转化率统计实现思路 了解如何生成用户浏览网页数据 掌握如何创建Spark连接并读取数据集 掌握利用Spark SQL统计每个页面访问次数 掌握利用Spark SQL获取每个用户浏览网页的顺序 掌握利用Spark SQL合并同一用户浏览的网页 掌握利用Spark SQL统计每…

qt quick(qml)通过arcgis导入自定义格式地图(Windows 版本)

参考ArcGIS Maps SDK for Qt 参考Display a map 安装 预先安装的软件 安装ArcGIS SDK 点击ArcGIS Maps SDK for Qt 注册账号 要注册成developer版本用户的,不然之后可能没办法生成API 下载 下载之后安装,一路next就可以了 在QT中创建ArcGIS项目…

安科瑞对于热继电器对电动机保护的探讨

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要:电动机烧毁是每一个生产企业都无法回避的现象,怎样加强电动机保护,使生产工艺系统的稳定,减少企业非正常停机时间。电动机保护成为电气技术人员一个重要课题。因此&#xff0c…

【数据结构】如何应用堆解决海量数据的问题

堆(Heap数据结构堆在计算机科学中有着广泛的应用,今天来介绍两种堆的应用:堆排序、Top-k问题🍉 堆排序 ​ 堆排序是一种基于堆数据结构的排序算法。它的基本思想是,将待排序的序列构建成一个大根堆(或小根堆&#xff…

Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)

用STCubeIDE进行标准库开发 1、CubeIDE介绍 https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE 2、CubeIDE下载 点击上面的链接,登录即可下载 3、搭建Demo工程 新建一个工作空间 创建一个工程 选择芯片-STM32F103C8T6 填写工程信息 添加标准库到工程 标…

SSRS rdlc报表 六 报表分组和总计

报表分组和总计在报表中是一个很常用的功能,比如我们需要按部门进行分组,统计每个部门的费用支出,或者在进一步分组,每个部门每个月的费用支出,通过rdlc报表,很容易实现这个需求。 我们下面要讲解的案例&a…

mac免费杀毒软件哪个好用?如何清理mac系统需要垃圾

CleanMyMac x是一款功能强大的Mac系统优化清理工具,使用旨在帮助用户更加方便的清理您系统中的所有垃圾,从而加快电脑运行速度,保持最佳性能,更加稳定、流畅、快速!!! CleanMyMac X无疑是目前m…

开放式耳机和封闭式耳机的区别有哪些?开放式耳机有哪些推荐?

开放式耳机和封闭式耳机的区别主要在以下几个方面: 设计结构:开放式耳机通常有一个开放的设计,不需要塞入耳即可收听音乐,同时与外部环境进行交互。封闭式耳机则是封闭的设计,耳机驱动单元之间是封闭和隔离的&#xf…

使用IIS创建WEB服务

文章目录 前言一、Web服务是什么?1.Web服务概述2.如何获取网页资源3.常见Web服务端软件4.什么是IIS 二、安装IIS1.安装Web服务器角色2.准备网页文件3.配置Web站点4.客户端浏览例:配置IIS站点 三、虚拟主机概述1.虚拟Web主机2.虚拟主机的几种类型3.基于端…

国内做校园信息化的龙头企业公司有哪些?

随着数字化转型的加速,越来越多的学校开始寻求校园信息化的解决方案,相比于传统信息化模式,国内有哪些做校园信息化做得比较好的企业?他们采用的又是什么样的方式? 一文带你了解,零代码平台搭建校园信息化…

EMC模式如何助力新能源服务商攻坚克难

01. 什么是合同能源管理? 合同能源管理(EMC-Energy Management Contract)是一种新型的市场化节能机制,其实质就是以减少的能源费用来支付节能项目全部成本的节能投资方式。:节能服务公司与用能单位以契约形式约定节能项目的节能目标,节能服务…

算法设计与分析期末总结

0000前言:基本是为了我自己看的一些我容易忘记的东西,为考试作准备把,主要使后半部分的知识,前半部分请看算法设计与分析阶段考总结 第五章 回溯算法是一种系统地搜索问题的解的方法。某个问题的所有可能解的称为问题的解空间&…

华为OD机试真题 Java 实现【寻找相似单词】【2023Q2 200分】

一、题目描述 给定一个可存储若干单词的字典,找出指定单词的所有相似单词,并且按照单词名称从小到大排序输出。 单词仅包括字母,但可能大小写并存(大写不一定只出现在首字母)。 相似单词说明: 给定一个…