Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
Swin Transformer是微软今年三月25日公布的一篇利用transformer架构处理计算机视觉任务的论文,一出即屠榜各大CV任务,地址如下:
网上已经有不少大佬进行了总结CSDN , 知乎,还有相关作者的亲自讲解B站,以及朱毅老师的精彩解读和大佬做的笔记,这里进行了借鉴,以下是本人对这篇论文的大致翻译及粗浅理解,难免有不少错漏之处,敬请包涵与指正。
摘要
本文提出了一种新的视觉Transformer,称为Swin Transformer,它可以作为计算机视觉的通用主干。从语言到视觉的转换面临的挑战来自于两个领域之间的差异,例如视觉实体尺度的巨大差异以及图像中像素相对于文本中单词的高分辨率。为了解决这些差异,我们提出了一种分层Transformer,其表示是用移位窗口计算的。移位窗口方案通过限制非重叠局部窗口的自注意力计算,同时允许跨窗口连接,从而提高了效率。这种分层结构具有在不同尺度下建模的灵活性,并且相对于图像大小具有线性计算复杂度。Swin Transformer的这些特性使其与广泛的视觉任务兼容,包括图像分类(ImageNet-1K上的准确度为87.3 top-1)和密集预测任务,如目标检测(COCO test-dev上的58.7 box AP和51.1 mask AP)和语义分割(ADE20K val上的准确度为53.5 mIoU)。它的性能大大超过了以前的技术水平,COCO上的box AP和mask AP分别为+2.7和+2.6,ADE20K上的性能为+3.2mIoU,这表明了基于Transformer的模型作为视觉backbone的潜力。也证明了分层设计和移位窗口方法对所有MLP体系结构都是有益的。
1.介绍
计算机视觉中的建模一直由卷积神经网络(CNN)主导。从AlexNet[39]及其在ImageNet图像分类挑战中的革命性表现开始,CNN架构通过更大的规模[30,76],更广泛的连接[34],以及更复杂的卷积形式[70,18,84]变得越来越强大。CNN作为各种视觉任务的骨干网络,这些体系结构的进步导致了性能的提高,从而广泛提升了整个领域。
另一方面,自然语言处理(NLP)中网络体系结构的演变走了一条不同的道路,今天流行的体系结构是Transformer[64]。Transformer是为序列建模和转换任务而设计的,它以关注数据中的长期依赖关系而著称。它在语言领域的巨大成功促使研究人员研究它对计算机视觉的适应性,最近它在某些任务上展示了有希望的结果,特别是图像分类[20]和联合视觉语言建模[47]。
在本文中,我们试图扩大Transformer的适用性,使其能够作为计算机视觉的通用backbone,就像NLP和CNN在视觉中一样。我们观察到,将其在语言领域的高性能转移到视觉领域的重大挑战可以通过两种模式之间的差异来解释。其中一个差异涉及尺度。与作为语言转换者处理的基本元素的单词token不同,视觉元素在尺度上可能有很大的差异,这是一个在物体检测等任务中引起注意的问题[42、53、54]。在现有的基于Transformer的models[64,20]中,tokens都是固定尺度的,这是一种不适合这些vision应用的属性。另一个区别是图像中的像素分辨率比文本中的单词分辨率高得多。存在许多视觉任务,例如需要在像素级进行密集预测的语义分割,而这对于高分辨率图像上的Transformer来说是很困难的,因为自注意力的计算复杂度与图片大小成二次关系。为了克服这些问题,我们提出了一种通用的Transformer主干,称为Swin-Transformer,它构造了分层特征映射,并且具有与图像大小成线性关系的计算复杂度。如图1(a)所示,Swin Transformer通过从小尺寸的patchs(以灰色勾勒)开始,并逐渐将相邻patchs合并到更深的Transformer层中来构建层次表示。有了这些分层特征映射,Swin Transformer模型可以方便地利用先进技术进行密集预测,如特征金字塔网络(FPN)[42]或U-Net[51]。线性计算复杂度是通过在分割图像的非重叠窗口内局部计算自注意力来实现的(用红色标出)。每个窗口中的patchs数是固定的,因此复杂度与图像大小成线性关系。这些优点使Swin Transformer适合作为各种视觉任务的通用主干,与以前基于Transformer的架构形成对比[20],后者生成单一分辨率的特征图,并且具有二次复杂度。
图1。(a)所提出的Swin Transformer通过在更深的层中合并图像块(以灰色显示)来构建分层特征图,并且由于仅在每个局部窗口(以红色显示)内计算自注意力,因此对于输入图像大小具有线性计算复杂度。因此,它可以作为图像分类和密集识别任务的通用主干。(b)相比之下,以前的vision Transformer[20]产生单一低分辨率的特征图,并且由于全局计算自注意力,输入图像大小具有二次计算复杂性。
Swin Transformer的一个关键设计元素是在连续的自注意力层之间移动窗口分区,如图2所示。移动的窗口桥接了前一层的窗口,提供了它们之间的连接,显著增强了建模能力(见表4)。这种策略对于真实世界的延迟也是有效的:一个窗口中的所有query patches都共享相同的key集,这有助于硬件中的内存访问。相比之下,早期的基于滑动窗口的自注意力方法[33,50]在通用硬件上的延迟较低,这是因为不同query像素的key集不同。实验结果表明,该方法是可行的[1]
图2。在所提出的Swin Transformer架构中,用于计算自注意力的移位窗口方法的示例。在层l(左),采用规则的窗口划分方案,并在每个窗口内计算自注意力。在下一层l+1(右)中,窗口分区被移动,从而产生新窗口。新窗口中的自注意力计算跨越层中以前窗口的边界,提供它们之间的连接。
移动窗口 这种方法的延迟比滑动窗口方法要低得多,但在建模能力方面却类似(见表5和表6)。移位窗口方法也适用于所有MLP架构[61]。
我们所提出的SwinTransformer在图像分类、目标检测和语义分割等识别任务上具有很强的性能。它在三项任务上的延迟相似,显著优于ViT/DeiT[20,63]和ResNe(X)t模型[30,70]。COCO测试开发设备上的58.7box AP和51.1mask AP超过先前的最先进结果+2.7box AP(复制粘贴[26],无外部数据)和+2.6mask AP(检测器[46])。在ADE20K语义切分上,它在val集合上获得了53.5mIoU,比之前的最新技术(SETR[81])提高了+3.2mIoU。在ImageNet-1K图像分类上,它还实现了87.3%的top-1精度
我们相信,跨计算机视觉和自然语言处理的统一架构可以使这两个领域受益,因为它将促进视觉和文本信号的联合建模,并且来自这两个领域的建模知识可以更深入地共享。我们希望Swin Transformer在各种视觉问题上的出色表现能够加深社区的这种信念,并鼓励视觉和语言信号的统一建模。
2.相关工作
CNN和CNN变体 CNNs在整个计算机视觉中充当标准网络模型。虽然CNN已经存在了几十年[40],但直到AlexNet[39]的引入,CNN才开始发展并成为主流。此后,人们提出了更深入、更有效的卷积神经结构,以进一步推动计算机视觉中的深度学习浪潮,例如VGG[52]、GoogleNet[57]、ResNet[30]、DenseNet[34],HRNet[65]和EfficientNet[58]。除了这些架构上的进步,在改进单个卷积层方面也做了很多工作,例如深度卷积[70]和可变形卷积[18,84]。虽然CNN及其变体仍然是计算机视觉应用的主要主干架构,但我们强调了Transformer式架构在视觉和语言之间统一建模方面的巨大潜力。我们的工作在几个基本的视觉识别任务上取得了很好的效果,我们希望这将有助于建模的转变。
基于自注意力的主干架构 同样受到NLP领域中自注意力层和Transformer架构成功的启发,一些作品使用自注意力层来替换流行的ResNet中的部分或全部空间卷积层[33,50,80]。在这些工作中,在每个像素的局部窗口内计算自注意力,以加快优化[33],并且与对应的ResNet架构相比,它们实现了略好的精度/FLOPs权衡。然而,其昂贵的内存访问导致其实际延迟明显大于卷积网络[33]。我们建议在连续层之间切换窗口,而不是使用滑动窗口,这允许在一般硬件中更有效地实现。
自注意力/Transformer对CNN的补充 另一项工作是用自注意力层或Transformer来增强标准CNN架构。自注意力层可以补充主干网络[67,7,3,71,23,74,55]或头部网络[32,27],提供编码远程依赖或异构交互的能力。最近,Transformer中的编码器-解码器设计已应用于对象检测和实例分割任务[8,13,85,56]。我们的工作探索了Transformer对基本视觉特征提取的适应性,是对这些工作的补充。
基于Transformer的视觉backbone 与我们的工作最相关的是视觉Transformer(ViT)[20]及其后续工作[63、72、15、28、66]。ViT的开创性工作直接将Transformer架构应用于非重叠的中等大小图像块,用于图像分类。与卷积网络相比,它在图像分类上实现了令人印象深刻的速度-精度折衷。虽然ViT需要大规模的训练数据集(即JFT-300M)才能很好地执行,但DeiT[63]引入了几种训练策略,使ViT也能有效地使用较小的ImageNet-1K数据集。ViT在图像分类方面的结果令人鼓舞,但由于其低分辨率特征映射和复杂度随图像大小的二次增加,其体系结构不适合用作密集视觉任务的通用主干网络或输入图像分辨率较高时。有一些工作将ViT模型应用于通过直接上采样或反卷积进行的目标检测和语义分割的稠密视觉任务,但性能相对较低[2,81]。与我们的工作同时进行的还有一些修改ViT体系结构[72、15、28]以实现更好的图像分类的任务。根据经验,我们发现我们的Swin-Transformer体系结构能够在这些图像分类方法中实现最佳的速度精度权衡,尽管我们的工作重点是通用性能,而不是专门针对分类。另一项并行工作[66]探索了在Transformer上构建多分辨率特征图的类似思路。它的复杂度仍然是图像大小的二次方,而我们的是线性的,并且在局部操作,这在视觉信号的高相关性建模中被证明是有益的[36,25,41]。我们的方法既高效又有效,在COCO对象检测和ADE20K语义分割方面都达到了最先进的精度。
3.方法
3.1. 总体架构
图3给出了Swin Transformer体系结构的概述,它演示了微型版本(SwinT)。它首先通过patchs分割模块(如ViT)将输入RGB图像分割为非重叠patchs。每个patchs被视为一个“token”,其特征被设置为原始像素RGB值的串联。在我们的实现中,我们使用4×4的patchs大小,因此每个patchs的特征维度为4×4×3=48。线性嵌入层应用于此原始值特征,以将其投影到任意维度(表示为C)。
图3。(a) Swin Transformer(Swin-T)的结构;(b) 两个连续的Swin Transformer块(用等式(3)表示的符号)。W-MSA和SW-MSA分别是具有规则和移位窗口配置的多头自注意力模块。
在这些patch tokens上应用了几个具有修改的自注意力计算(Swin Transformer blocks)的Transformer块。Transformer块保持tokens的数量(H/4×W/4),与线性嵌入一起被称为“阶段1”。
为了产生分层表示,随着网络的深入,通过patches合并层来减少tokens的数量。第一个patchs合并层连接每组2×2相邻patchs的特征,并在4C维连接特征上应用线性层。这将tokens的数量减少了2×2=4的倍数(分辨率的2×降采样),并且输出维度设置为2C. 之后应用Swin Transformer块进行特征变换,分辨率保持在H/8×W/8。这个patchs合并和特征转换的第一个块被称为“阶段2”。该过程重复两次,即“第3阶段”和“第4阶段”,输出分辨率分别为H/16×W/16和H/32×W/23。这些阶段共同产生了一种分层表示,其具有与典型卷积网络相同的特征图分辨率,如VGG[52]和ResNet[30]。因此,所提出的体系结构可以方便地取代现有方法中存在的各种视觉任务的骨干网络。
Swin Transformer block Swin Transformer通过将Transformer block中的标准多头自注意力(MSA)模块替换为基于移动窗口的模块(如第3.2节所述)构建,其他层保持不变。如图3(b)所示,Swin Transformer块由一个基于移位窗口的MSA模块组成,然后是一个中间带有GELU非线性的2层MLP。在每个MSA模块和每个MLP之前应用LayerNorm(LN)层,在每个模块之后应用残差连接。
3.2. 基于移位窗口的自注意力
标准Transformer体系结构[64]及其对图像分类的适应[20]都进行全局自注意力,其中计算tokens与所有其他tokens之间的关系。全局计算导致了tokens数量的二次复杂度,这使得它不适用于许多需要大量tokens进行密集预测或表示高分辨率图像的视觉问题。
非重叠窗口中的自注意力 为了有效建模,我们建议在局部窗口中计算自注意力。窗口被布置成以不重叠的方式均匀地分割图像。假设每个窗口包含的patches为M×M分辨率,则一个全局MSA模块和一个基于窗口的每张图片包含h×w个patches的W-MSA计算复杂度为(在确定复杂度时忽略了SoftMax计算):
Ω(MSA)=4hwC2+2(hw)2C,(1)
Ω(W-MSA)=4hwC2+2M2hwC,(2)
其中,前者是patchs数hw的二次方,后者在M固定时是线性的(默认设置为7)。全局自注意力计算在hw很大时通常是负担不起的,而基于窗口的自注意力是可伸缩的。
连续块中的移位窗口分区 基于窗口的自注意力模块缺乏跨窗口的连接,这限制了其建模能力。为了在保持非重叠窗口高效计算的同时引入跨窗口连接,我们提出了一种移位窗口划分方法,该方法在连续的Swin Transformer块中交替使用两种划分配置。
如图2所示,第一个模块使用从左上角像素开始的常规窗口分区策略,将8×8特征图均匀地划分为大小为4×4(M=4)的2×2个窗口。然后,下一个模块采用一个窗口配置,该配置通过将窗口从规则分区的窗口置换个像素而与前一层的窗口配置发生偏移
使用移位窗口划分方法,连续的SwinTransformer块计算如下:
式中,和
分别表示块l的(S)WMSA模块和MLP模块的输出特征;W-MSA和SW-MSA分别表示使用规则和移位窗口分区配置的基于窗口的多头自注意力。
图4。说明了一种有效的批处理计算方法,用于移动窗口分区中的自注意力。
移位窗口分割方法引入了前一层中相邻非重叠窗口之间的连接,并在图像分类、对象检测和语义分割中被发现是有效的,如表4所示。
移位配置的高效批处理计算 移位窗口分区的一个问题是,它将导致中的更多窗口,在移位配置中从到
,并且一些窗口将小于M×M。一个简单的解决方案是将较小的窗口填充到M×M大小(为了使窗口大小(M、M)可被特征图大小(h、w)整除,如果需要,在特征图上采用右下角的填充),并在计算注意力时mask填充值。当常规分区中的窗口数很小时(例如2×2),使用此原始解决方案增加的计算量相当大(2×2→ 3×3,大于2.25倍)。在这里,我们提出了一种更有效的批量计算方法,方法是向左上方向循环移位,如图4所示。在该移位之后,批处理窗口可能由多个子窗口组成,这些子窗口在特征图中不相邻,因此采用mask机制将自注意力计算限制在每个子窗口内。使用循环移位,批处理窗口的数量与常规窗口分区的数量相同,因此也是有效的。这种方法的低延迟如表5所示。
相对位置偏差 在计算自注意力时,我们通过在计算相似度时将一个相对位置偏差包含进每一个头以遵循[49,1,32,33]中的方法:
其中Q,K,V∈ 是query,key和value矩阵,d是query/key维度,M2是窗口中的patches数。由于沿每个轴的相对位置位于范围内[−M+1,M−1] ,我们参数化了一个较小尺寸的偏差矩阵
,B中的值取自
。
如表4所示,我们观察到与没有此偏差项或使用绝对位置嵌入的对应项相比,有显著的改进。在[20]中进一步向输入添加绝对位置嵌入会略微降低性能,因此我们的实现中不采用绝对位置嵌入。
预训练中学习到的相对位置偏差也可用于初始化模型,以便通过双立方次插值以不同的窗口大小进行微调[20,63]。
3.3. 架构变体
我们建立了我们的基础模型Swin-B,使其模型大小和计算复杂度与ViTB/DeiT-B相似。我们还介绍了Swin-T、Swin-S和Swin-L,它们分别是Swin-B模型大小和计算复杂度的0.25倍、0.5倍和2倍版本。请注意,Swin-T和Swin-S的复杂度分别与ResNet-50(DeiT-S)和ResNet-101的复杂度相似。默认情况下,窗口大小设置为M=7。对于所有实验,每个头部的query维度d=32,每个MLP的扩展层α=4。这些模型变体的架构超参数为:
•Swin-T:C=96,层数={2,2,6,2}
•Swin-S:C=96,层数={2,2,18,2}
•Swin-B:C=128,层数={2,2,18,2}
•Swin-L:C=192,层数={2,2,18,2}
其中C是第一阶段中隐藏层的通道数。ImageNet图像分类模型变量的模型大小、理论计算复杂度(FLOPs)和吞吐量如表1所示。
4.实验
我们在ImageNet-1K图像分类[19]、COCO目标检测[43]和ADE20K语义分割[83]上进行了实验。在下文中,我们首先将提出的SwinTransformer体系结构与之前在这三项任务上的最新技术进行比较。然后,我们消融了Swin Transformer的重要设计元素。
4.1. 基于ImageNet-1K的图像分类
在图像分类设置方面,我们在ImageNet-1K[19]上对建议的SWI Transformer进行了基准测试,该Transformer包含1000个类的1.28M训练图片和50K验证图片。报告了单个作物的最高精度。我们考虑两种训练设置:
• . 此设置主要遵循[63]。我们使用了一个AdamW[37]优化器,使用余弦衰减学习率调度器,用于300个epochs,和20个epochs的线性预热。批量大小为1024,初始学习率为0.001,权重衰减为0.05。我们在训练中纳入了[63]中的大多数增强和正则化策略,除了重复增强[31]和EMA[45]操作,它们不能提高性能。注意,这与[63]相反,在[63]中,重复增强对于稳定ViT训练至关重要。
• . 我们还对较大的ImageNet-22K数据集进行了预训练,该数据集包含1420万张图像和22K类。我们使用了一个AdamW优化器,用于90个epoch,使用一个线性衰减学习速率调度器和一个5epoch线性预热。批量大小为4096,初始学习率为0.001,重量衰减为0.01。在ImageNet-1K微调中,我们对模型进行了30个epoch的训练,批量大小为1024,恒定学习率为10−5,重量衰减为10−8.
常规ImageNet-1K训练的结果 表1(a)给出了与其他主干网络(包括基于Transformer和基于ConvNet)使用常规ImageNet-1K训练的比较。
与先前最先进的基于Transformer的体系结构(即DeiT[63])相比,Swin Transformer明显超过了具有类似复杂度的对应DeiT体系结构:使用2242输入的Swin-T(81.3%)比使用2242输入的DeiT-S(79.8%)高出+1.5%(81.3%),使用224/384输入的Swin-B(83.3%/84.5%)比使用2242/3842输入的DeiT-B(81.8%/83.1%)高出+1.5%/1.4%。
与最先进的ConvNet(即RegNet[48]和EfficientNet[58])相比,SwinTransformer实现了稍好的速度精度折衷。注意到尽管RegNet[48]和EfficientNet[58]是通过彻底的架构搜索获得的,但我们提出的Swin Transformer是从标准Transformer改编而来的,具有进一步改进的巨大潜力。
通过ImageNet-22K预训练的结果 我们还可以在ImageNet-22K上预训练更大容量的Swin-B和Swin-L。在ImageNet-1K图像分类上微调的结果如表1(b)所示。对于Swin-B,与ImageNet-1K从头开始的训练相比,ImageNet22K预训练带来1.8%∼1.9%的提高。与之前ImageNet-22K预训练的最佳结果相比,我们的模型实现了显著更好的速度-精度权衡:Swin-B获得86.4%的top-1精度,比具有类似推理吞吐量(84.7 vs.85.9图像/秒)的ViT高2.4%,并且FLOPs略低(47.0G vs.55.4G)。较大的Swin-L模型达到87.3%的top-1精度,比Swin-B模型高+0.9%。
![](https://img2020.cnblogs.com/blog/1859337/202112/1859337-20211210163558248-1518081706.png)
表1。ImageNet-1K分类上不同主干的比较。吞吐量是使用[68]的GitHub repository和V100 GPU测量的,遵循[63]。
4.2. 基于COCO的目标检测
设置 对象检测和实例分割实验在COCO 2017上进行,包括118K训练、5K验证和20K测试开发图像。使用验证集进行消融研究,并在TEST DEVE上报告系统级比较。对于消融研究,我们考虑了四种典型的目标检测框架:级联maskR CNN(29, 6)、ATSS(79)、RePoT V2(12)和稀疏RCNN(56)在MM检测(10)中。对于这四个框架,我们使用相同的设置:多尺度训练[8,56](调整输入大小,使短边在480到800之间,而长边最多为1333),AdamW[44]优化器(初始学习率为0.0001,权重衰减为0.05,批量大小为16),以及3倍计划(36个历次)。为了进行系统级比较,我们采用了改进的HTC[9](表示为HTC++),其中instaboost[22]、更强的多尺度训练[7]、6x计划(72个epoch)、软NMS[5]和ImageNet-22K预训练模型作为初始化。
4.3. 基于ADE20K的语义切分
4.4. 消融研究
在本节中,我们使用ImageNet-1K图像分类、COCO对象检测上的级联mask R-CNN以及ADE20K语义分割上的UperNet,在提出的SWITransformer中删除了重要的设计元素。
移位窗口 表4中报告了三项任务中移位窗口法的消融。采用移位窗口分区的SWI-T在每个阶段都优于基于单个窗口分区的对应工作,在ImageNet-1K上的精度为+1.1%,在COCO上的精度为+2.8%,在ADE20K上的精度为+2.2%。结果表明,使用移动窗口与之前层的窗口之间建立连接是有效的。移位窗口的延迟开销也很小,如表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,以及在ADE20K上,分别与未进行位置编码和具有绝对位置嵌入的相关模型相比获得+2.3/+2.9 mIoU,表明相对位置偏置的有效性。还要注意的是,虽然包含绝对位置嵌入提高了图像分类精度(+0.4%),但它损害了对象检测和语义分割(COCO上为-0.2box/mask AP,ADE20K上为-0.6mIoU)。
表5。V100GPU上不同的自注意计算方法和实现的真实速度。
虽然最近的ViT/DeiT模型放弃了图像分类中的平移不变性,尽管它长期以来一直被证明对视觉建模至关重要,但我们发现,鼓励一定平移不变性的归纳偏见对于通用视觉建模仍然是可取的,特别是对于密集预测任务的目标检测和语义分割。
不同的自注意力方法 表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比较了它们在这三项任务中的准确性,表明它们在视觉建模方面同样准确。
与Performer[14](速度最快的Transformer体系结构之一)相比,提出的基于移位窗口的自注意力计算和整体SWITransformer体系结构稍快(见表5),同时与使用SWI-T的ImageNet-1K上的Performer相比,达到+2.3%的top-1精度(见表6)。
5.结论
本文展示了Swin Transformer,一种可以生成分层特征表示且关于输入图片大小有线性复杂度的新型Transformer。Swin Transformer在COCO对象检测和ADE20K语义分割方面实现了最先进的性能,显著超过了以前的最佳方法。我们希望Swin Transformer在各种视觉问题上的出色表现将促进视觉和语言信号的统一建模。
表6。在三个基准上使用不同方法进行自注意力计算的Swin Transformer的精度。作为Swin Transformer的一个关键元素,基于移动窗口的自注意力被证明是解决视觉问题的有效方法,我们期待着研究它在自然语言处理中的应用。
A1.详细架构
详细的架构规范如表7所示,其中假设所有架构的输入图像大小为224×224。“Concat×n”表示patchs中×n个相邻特征的串联。此操作导致特征图的下采样率为。“96-d”表示输出尺寸为96的线性层。“win.sz.7×7”表示窗口大小为7×7的多头自注意力模块。