【第16篇】Swin Transformer,跪了

我们观察到与没有这个偏置项或使用绝对位置嵌入的对应项相比有显着的改进,如表 4 所示。在 [19] 中进一步向输入添加绝对位置嵌入会略微降低性能,因此在我们的实现中没有采用。

预训练中学习到的相对位置偏差也可用于初始化模型,通过双三次插值 [19, 60] 使用不同的窗口大小进行微调。

3.3、架构变体


我们建立我们的基础模型,称为 Swin-B,具有 模型大小和计算复杂度类似于 ViTB/DeiT-B。 我们还介绍了 Swin-T、Swin-S 和 Swin-L,它们分别是模型大小和计算复杂度约为 0.25x、0.5x 和 2x 的版本。 请注意,Swin-T 和 Swin-S 的复杂度分别与 ResNet-50 (DeiT-S) 和 ResNet-101 的复杂度相似。 默认情况下,窗口大小设置为 M = 7。 对于所有实验,每个头部的查询维度为 d = 32,每个 MLP 的扩展层为 α = 4。 这些模型变体的架构超参数是:

  • Swin-T: C = 96 C=96 C=96, layer numbers = { 2 , 2 , 6 , 2 } =\{2,2,6,2\} ={2,2,6,2}

  • Swin-S: C = 96 C=96 C=96, layer numbers = { 2 , 2 , 18 , 2 } =\{2,2,18,2\} ={2,2,18,2}

  • Swin-B: C = 128 C=128 C=128, layer numbers = { 2 , 2 , 18 , 2 } =\{2,2,18,2\} ={2,2,18,2}

  • Swin-L: C = 192 C=192 C=192, layer numbers = { 2 , 2 , 18 , 2 } =\{2,2,18,2\} ={2,2,18,2}

其中 C 是第一阶段隐藏层的通道数。 表 1 列出了 ImageNet 图像分类模型变体的模型大小、理论计算复杂度 (FLOPs) 和吞吐量。

4、实验

===============================================================

我们对 ImageNet-1K 图像分类 [18]、COCO 对象检测 [42] 和 ADE20K 语义分割 [80] 进行了实验。 在下文中,我们首先将所提出的 Swin Transformer 架构与之前在三个任务上的最新技术进行比较。 然后,我们在 Swin Transformer 的重要设计元素做了消融实验。

4.1. ImageNet-1K 上的图像分类


设置 对于图像分类,我们在 ImageNet-1K [18] 上对提议的 Swin Transformer 进行了基准测试,其中包含来自 1,000 个类别的 1.28M 训练图像和 50K 验证图像。 报告了单个作物的 top-1 准确度。 我们考虑两种训练设置:

  • 常规 ImageNet-1K 训练。 此设置主要遵循 [60]。 我们使用一个 AdamW [36] 优化器,使用余弦衰减学习率调度器和 20 个 epochs 的线性热身进行 300 个 epochs。 使用 1024 的批大小、0.001 的初始学习率和 0.05 的权重衰减。 我们在训练中包含了 [60] 的大部分增强和正则化策略,除了重复增强 [30] 和 EMA [44],它们不会提高性能。 请注意,这与[60]相反,其中重复增强对于稳定 ViT 的训练至关重要。

  • 在 ImageNet-22K 上进行预训练并在 ImageNet-1K 上进行微调。 我们还在更大的 ImageNet-22K 数据集上进行了预训练,该数据集包含 1420 万张图像和 22K 类。 我们使用带有 5 个时期线性热身的线性衰减学习率调度器对 60 个时期使用 AdamW 优化器。 批量大小为 4096,初始学习率为 0.001,权重衰减为 0.01。 在 ImageNet-1K 微调中,我们以 1024 的批大小、10-5 的恒定学习率和 1 0 − 8 10^{-8} 10−8 的权重衰减训练模型 30 个时期。

image-20211012150108056

常规 ImageNet-1K 训练的结果 表 1(a) 展示了使用常规 ImageNet-1K 训练与其他主干的比较,包括基于 Transformer 和基于 ConvNet 的主干。

与之前最先进的基于 Transformer 的架构(即 DeiT [60])相比,Swin Transformers 明显优于具有相似复杂性的对应 DeiT 架构:Swin-T (81.3%) 比 DeiT-S (79.8%) + 1.5% ) 使用 2242 输入,Swin-B (83.3%/84.2%) 使用 22 4 2 / 38 4 2 224{2}/384{2} 2242/3842 输入,分别超过 DeiT-B (81.8%/83.1%) +1.5%/1.1%。

与最先进的 ConvNets,即 RegNet [47] 和 EfficientNet [57] 相比,Swin Transformer 实现了稍微更好的速度-精度权衡。 请注意,虽然 RegNet [47] 和 EfficientNet [57] 是通过彻底的架构搜索获得的,但所提出的 Swin Transformer 改编自标准 Transformer,并且具有进一步改进的强大潜力。

ImageNet-22K 预训练的结果 我们还在 ImageNet-22K 上预训练了更大容量的 Swin-B 和 Swin-L。 在 ImageNet-1K 图像分类上微调的结果如表 1(b) 所示。 对于 Swin-B,ImageNet-22K 预训练比从头开始训练 ImageNet-1K 带来了 1.8%∼1.9% 的收益。 与之前 ImageNet-22K 预训练的最佳结果相比,我们的模型在速度和准确度之间取得了明显更好的权衡:Swin-B 获得了 86.0% 的 top-1 准确度,比具有相似推理吞吐量的 ViT 高 2.0% (84.7 对 85.9 张图像/秒)和略低的 FLOP(47.0G 对 55.4G)。 较大的 Swin-L 模型实现了 86.4% 的 top-1 准确率,略好于 Swin-B 模型。

4.2. COCO 上的物体检测


设置 对象检测和实例分割实验在 COCO 2017 上进行,其中包含 118K 训练、5K 验证和 20K 测试开发图像。使用验证集进行消融研究,并在 test-dev 上报告系统级比较。对于消融研究,我们考虑了四种典型的对象检测框架:级联掩码 R-CNN [28, 5]、ATSS [76]、RepPoints v2 [11] 和 mmdetection [9] 中的稀疏 RCNN [55]。对于这四个框架,我们使用相同的设置:多尺度训练 [7, 55](调整输入的大小,使短边在 480 到 800 之间,而长边最多为 1333)、AdamW [43] 优化器(初始学习率为 0.0001,权重衰减为 0.05,批量大小为 16),以及 3x 计划(36 个时期)。对于系统级比较,我们采用改进的 HTC [8](表示为 HTC++)和 instaboost [21]、更强的多尺度训练 [6]、6x 计划(72 epochs)、soft-NMS [4] 和 ImageNet -22K 预训练模型作为初始化。

我们将 Swin Transformer 与标准 ConvNets(即 ResNe(X)t)和之前的 Transformer 网络(例如 迪特。 比较是通过在其他设置不变的情况下仅更改主干来进行的。 请注意,虽然 Swin Transformer 和 ResNe(X)t 由于其分层特征图可直接适用于上述所有框架,但 DeiT 仅生成单一分辨率的特征图,不能直接应用。 为了公平比较,我们按照 [78] 使用反卷积层为 DeiT 构建分层特征图。

image-20211012150014743

与 ResNe(X)t 的比较 表 2(a) 列出了 Swin-T 和 ResNet-50 在四个对象检测框架上的结果。 与 ResNet-50 相比,我们的 Swin-T 架构带来了一致的 +3.4∼4.2 box AP 增益,模型尺寸、FLOPs 和延迟略大 。

表 2(b) 比较了使用 Cascade Mask RCNN 在不同模型容量下的 Swin Transformer 和 ResNe(X)t。 Swin Transformer 实现了 51.9 box AP 和 45.0 mask AP 的高检测精度,与具有相似模型大小、FLOPs 和延迟的 ResNeXt101-64x4d 相比,显着提高了 +3.6 box AP 和 +3.3 mask AP。 在使用改进的 HTC 框架的 52.3 box AP 和 46.0 mask AP 的更高基线上,Swin Transformer 的收益也很高,为 +4.1 box AP 和 +3.1 mask AP(见表 2(c))。 关于推理速度,虽然 ResNe(X)t 是由高度优化的 Cudnn 函数构建的,但我们的架构是通过内置的 PyTorch 函数实现的,这些函数并非都经过优化。 彻底的内核优化超出了本文的范围。

与 DeiT 的比较 使用 Cascade Mask R-CNN 框架的 DeiT-S 的性能如表 2(b) 所示。 Swin-T 的结果比 DeiT-S 高 +2.5 box AP 和 +2.3 mask AP,具有相似的模型大小(86M vs. 80M)和显着更高的推理速度(15.3 FPS vs. 10.4 FPS)。 DeiT 较低的推理速度主要是由于其对输入图像大小的二次复杂度。

与之前最先进技术的比较 表 2© 将我们的最佳结果与之前最先进模型的结果进行了比较。 我们的最佳模型在 COCO test-dev 上实现了 58.7 box AP 和 51.1 mask AP,超过了之前的最佳结果 +2.7 box AP(没有外部数据的复制粘贴 [25])和 +2.6 mask AP(DetectoRS [45])。

4.3. ADE20K 上的语义分割


设置 ADE20K [80] 是一个广泛使用的语义分割数据集,涵盖了广泛的 150 个语义类别。 它总共有 25K 张图像,其中 20K 用于训练,2K 用于验证,另外 3K 用于测试。 我们利用 mmseg [15] 中的 UperNet [66] 作为其高效的基础框架。 附录中提供了更多详细信息。

image-20211012150032790

结果 表 3 列出了不同方法/主干对的 mIoU、模型大小(#param)、FLOP 和 FPS。 从这些结果可以看出,Swin-S 比 DeiT-S 高 +5.3 mIoU(49.3 vs. 44.0),计算成本相似。它也比 ResNet-101 高 +4.4 mIoU,比 ResNet-101 高 +2.4 mIoU ResNeSt-101 [75]。 我们使用 ImageNet-22K 预训练的 Swin-L 模型在 val 集上实现了 53.5 mIoU,超过了之前最好的模型 +3.2 mIoU(SETR [78] 的 50.3 mIoU,具有更大的模型尺寸)

4.4. 消融研究


在本节中,我们使用 ImageNet-1K 图像分类、COCO 对象检测上的 Cascade Mask R-CNN 和 ADE20K 语义分割上的 UperNet 消除了所提出的 Swin Transformer 中的重要设计元素。

image-20211012145950458

移窗 表 4 中报告了对三个任务的移位窗口方法的消融。在 ImageNet-1K 上,具有移位窗口分区的 Swin-T 在每个阶段的性能优于基于单个窗口分区的对应物+1.1% top-1,+ COCO 上为 2.8 box AP/+2.2 mask AP,ADE20K 上为 +2.8 mIoU。 结果表明使用移位窗口在前面层中的窗口之间建立连接的有效性。 移位窗口的延迟开销也很小,如表 5 所示 。

相对位置偏差 表 4 显示了不同位置嵌入方法的比较。 具有相对位置偏差的 Swin-T 在 ImageNet-1K 上产生 +1.2%/+0.8% top-1 准确度,在 COCO 上产生 +1.3/+1.5 box AP 和 +1.1/+1.3 mask AP,在 COCO 上产生 +2.3/+2.9 mIoU ADE20K 分别与那些没有位置编码和绝对位置嵌入的相关,表明相对位置偏差的有效性。 另请注意,虽然包含绝对位置嵌入提高了图像分类精度(+0.4%),但它会损害对象检测和语义分割(COCO 上的框/掩码 AP 为 -0.2,ADE20K 上的为 -0.6 mIoU)。

虽然最近的 ViT/DeiT 模型放弃了图像分类中的平移不变性,尽管它长期以来一直被证明对视觉建模至关重要,但我们发现鼓励某些平移不变性的归纳偏差对于通用视觉建模仍然是可取的,特别是对于 目标检测和语义分割的密集预测任务。

不同的self-attention方法 表 5 中比较了不同自注意力计算方法和实现的实际速度。我们的循环实现比朴素填充的硬件效率更高,特别是对于更深的阶段。 总体而言,它分别为 Swin-T、Swin-S 和 Swin-B 带来了 13%、18% 和 18% 的加速。

基于所提出的自注意力模块 在四个网络阶段,在朴素/内核实现中,移位窗口方法分别比滑动窗口方法效率高 40.8×/2.5×、20.2×/2.5×、9.3×/2.1× 和 7.6×/1.8×。 总体而言,构建在移动窗口上的 Swin Transformer 架构分别比构建在滑动窗口上的 Swin-T、Swin-S 和 Swin-B 变体快 4.1/1.5、4.0/1.5、3.6/1.5 倍。 表 6 比较了它们在三个任务上的准确性,表明它们在视觉建模方面的准确性相似。

image-20211012145935525

如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
img

滞不前!**

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-uqxZyMdC-1711075040190)]

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值