在深度学习的广阔领域中,目标检测作为计算机视觉的基石任务之一,始终吸引着研究者的广泛关注。近期,我们大胆尝试将前沿的PoolFormer主干网络引入经典的目标检测框架YoloV8中,这一创新性融合不仅为YoloV8注入了新的活力,更在检测精度与效率上实现了双重飞跃,成为目标检测领域的一股强劲新风。
PoolFormer:轻量高效的新星
PoolFormer,作为MetaFormer家族的一员,以其独特的池化注意力机制脱颖而出。该机制巧妙地将池化操作与注意力机制相结合,既保留了Transformer的强大全局建模能力,又通过池化减少了计算复杂度和内存消耗,实现了计算效率与性能的完美平衡。这一特性使得PoolFormer成为处理大规模视觉数据时的理想选择。
完整代码:
https://blog.csdn.net/m0_47867638/article/details/142489585
YoloV8:实时检测的佼佼者
YoloV8,作为Yolo系列检测器的最新成员,继承并优化了前代产品的优秀基因,以其出色的实时检测性能和较高的准确率赢得了业界的广泛认可。YoloV8在保持轻量级设计的同时,通过一系列优化策略提升了检测速度和精度,是实时目标检测任务中的佼佼者。
融合之美:PoolFormer+YoloV8
本次研究中,我们创新性地将PoolFormer作为主干网络引入YoloV8,通过替换原有的主干结构,实现了对图像特征的高效提取与表征。PoolFormer的池化注意力机制使得模型在捕获图像全局信息的同时,能够更好地处理局部细节,从而提升了检测精度。此外,得益于PoolFormer的轻量高效特性,改进后的YoloV8在保持原有实时检测速度的基础上,进一步降低了计算成本和内存占用,提升了整体模型的部署友好性。
显著优势:
PoolFormer与YoloV8的这次融合尝试,不仅展示了深度学习领域内的创新活力,更为目标检测任务提供了一种新的解决方案。我们相信,随着技术的不断进步和应用的持续深化,这一创新成果将在更多领域发挥重要作用,推动视觉检测技术的蓬勃发展。
Transformer在计算机视觉任务中表现出了巨大的潜力。人们普遍认为,其基于注意力的令牌混合模块对其能力贡献最大。然而,最近的研究表明,Transformer中的基于注意力的模块可以被空间多层感知机(MLP)替代,且替换后的模型仍然表现良好。基于这一观察,我们假设Transformer的一般架构,而不是特定的令牌混合模块,对模型性能更为重要。为了验证这一点,我们故意用一个极其简单的空间池化操作符替换了Transformer中的注意力模块,以仅进行基本的令牌混合。令人惊讶的是,我们发现由此得到的模型,称为PoolFormer,在多个计算机视觉任务上取得了具有竞争力的性能。例如,在ImageNet-1K上,PoolFormer达到了82.1%的top-1准确率,与经过良好调优的类似Vision Transformer/MLP的基线模型DeiT-B/ResMLP-B24相比,准确率分别高出0.3%/1.1%,同时参数减少了35%/52%,乘积累加操作(MACs)减少了50%/62%。PoolFormer的有效性验证了我们的假设,并促使我们提出了“MetaFormer”的概念,这是一个从Transformer中抽象出来的一般架构,但不指定令牌混合模块。基于广泛的实验,我们认为MetaFormer是近期Transformer和类似MLP的模型在视觉任务上取得优异结果的关键因素。这项工作呼吁未来更多致力于改进MetaFormer的研究,而不是专注于令牌混合模块。此外,我们提出的PoolFormer可以作为未来MetaFormer架构设计的起点基线。
在这里插入图片描述
Transformer在计算机视觉领域引起了广泛的关注和取得了巨大的成功[3,8,44,55]。自从开创性的Vision Transformer(ViT)[17]工作将纯Transformer应用于图像分类任务以来,许多后续模型被开发出来,以进一步改进并在各种计算机视觉任务中实现有前景的性能[36,53,63]。
如图1(a)所示,Transformer编码器由两个组件组成。一个是用于在令牌之间混合信息的注意力模块,我们称之为令牌混合器。另一个组件包含其余模块,如通道MLP和残差连接。通过将注意力模块视为一个特定的令牌混合器,我们进一步将整体的Transformer抽象为一个一般架构MetaFormer,其中不指定令牌混合器,如图1(a)所示。
长期以来,Transformer的成功一直归因于基于注意力的令牌混合器[56]。基于这一普遍信念,开发了许多注意力模块的变体[13,22,57,68]来改进Vision Transformer。然而,最近的一项工作[51]完全用空间MLP作为令牌混合器替代了注意力模块,并发现由此得到的类似MLP的模型在图像分类基准测试中能够轻松达到有竞争力的性能。后续工作[26,35,52]通过数据高效训练和特定的MLP模块设计进一步改进了类似MLP的模型,逐渐缩小了与ViT的性能差距,并挑战了注意力作为令牌混合器的主导地位。
最近的一些方法[32,39,40,45]在MetaFormer架构内探索了其他类型的令牌混合器,并展示了令人鼓舞的性能。例如,[32]用傅里叶变换替换了注意力,仍然达到了原始Transformer约97%的准确率。综合这些结果,似乎只要模型采用MetaFormer作为一般架构,就可以获得有前景的结果。因此,我们假设与特定的令牌混合器相比,MetaFormer对于模型实现有竞争力的性能更为重要。
为了验证这一假设,我们应用了一个极其简单的非参数运算符——池化(pooling),作为令牌混合器来进行基本的令牌混合。令人惊讶的是,由此得出的模型,我们称之为PoolFormer,实现了有竞争力的性能,甚至一致地优于经过精心调整的Transformer和类似MLP的模型,包括DeiT[53]和ResMLP[52],如图1(b)所示。更具体地说,PoolFormer-M36在ImageNet-1K分类基准测试中达到了82.1%的top-1准确率,比经过精心调整的视觉Transformer/类似MLP的基线DeiTB/ResMLP-B24高出0.3%/1.1%的准确率,同时参数减少了35%/52%,MACs(乘加操作次数)减少了50%/62%。这些结果表明,即使使用了一个朴素的令牌混合器,MetaFormer仍然能够展现出有前景的性能。因此,我们认为MetaFormer是我们实现有竞争力性能的视觉模型的实际需求,它比特定的令牌混合器更为重要。请注意,这并不意味着令牌混合器不重要。MetaFormer仍然包含这个抽象组件。它意味着令牌混合器不限于特定类型,如注意力。
本文的贡献主要有两方面。首先,我们将Transformer抽象为一个一般架构MetaFormer,并通过实验证明,Transformer/类似MLP模型的成功在很大程度上归功于MetaFormer架构。具体来说,我们仅使用一个简单的非参数运算符——池化,作为MetaFormer的一个极其弱的令牌混合器,构建了一个简单的模型PoolFormer,并发现它仍然能够实现高度有竞争力的性能。我们希望我们的发现能够激发未来更多致力于改进MetaFormer而非专注于令牌混合器模块的研究。其次,我们在多个视觉任务上评估了提出的PoolFormer,包括图像分类[14]、目标检测[34]、实例分割[34]和语义分割[67],并发现与使用复杂设计的令牌混合器的最先进模型相比,PoolFormer实现了有竞争力的性能。PoolFormer可以很容易地作为未来MetaFormer架构设计的一个良好起始基线。
Transformer模型最初由[56]提出用于翻译任务,并随后迅速在各种NLP任务中流行起来。在语言预训练任务中,Transformer在大规模未标记文本语料库上进行训练,并取得了惊人的性能[2, 15]。受Transformer在NLP领域成功的启发,许多研究人员将注意力机制和Transformer应用于视觉任务[3,8,44,55]。值得注意的是,Chen等人引入了iGPT[6],其中Transformer被训练为自回归地预测图像上的像素点,以实现自监督学习。Dosovitskiy等人提出了带有硬性块嵌入作为输入的Vision Transformer(ViT)[17]。他们表明,在监督图像分类任务中,一个在大型专有数据集(包含3亿张图像的JFT数据集)上预训练的ViT可以取得优异的性能。DeiT[53]和T2T-ViT[63]进一步证明,仅在ImageNet-1K(约130万张图像)上从头开始预训练的ViT也可以实现有前景的性能。许多工作都集中在通过滑动窗口[36]、相对位置编码[61]、细化注意力图[68]或结合卷积[12,21,60]等方法来改进Transformer的令牌混合方法。除了基于注意力的令牌混合器外,[51,52]令人惊讶地发现,仅仅采用MLP作为令牌混合器仍然可以实现有竞争力的性能。这一发现挑战了基于注意力的令牌混合器的主导地位,并在研究界引发了关于哪种令牌混合器更好的热烈讨论[7,26]。然而,本工作的目标既不是参与这一争论,也不是设计新的复杂令牌混合器以达到最新的技术水平。相反,我们探讨了一个基本问题:Transformer及其变体的成功真正归因于什么?我们的答案是通用架构,即MetaFormer。我们仅利用池化作为基本的令牌混合器来探究MetaFormer的潜力。
同时,一些工作也有助于回答同样的问题。Dong等人证明,没有残差连接或MLP,输出会双指数收敛到一个秩一矩阵[16]。Raghu等人[43]比较了ViT和CNN之间的特征差异,发现自注意力允许早期收集全局信息,而残差连接极大地促进了特征从较低层到较高层的传播。Park等人[42]表明,多头自注意力通过使损失景观平坦化来提高准确性和泛化能力。不幸的是,他们并没有将Transformer抽象为一个通用架构,并从通用框架的角度进行研究。
我们首先提出本工作的核心概念“MetaFormer”。如图1所示,MetaFormer是从Transformer[56]中抽象出来的一种通用架构,其中令牌混合器(token mixer)未具体指定,而其他组件则与Transformer保持一致。输入首先通过输入嵌入处理,如对于ViT的块嵌入[17],
其中表示嵌入令牌,序列长度为,嵌入维度为。
然后,嵌入令牌被输入到重复的MetaFormer块中,每个块包含两个残差子块。具体来说,第一个子块主要包含一个令牌混合器,用于令牌之间的信息传递,该子块可以表示为
其中表示归一化操作,如层归一化[1]或批归一化[28];表示主要用于混合令牌信息的模块。它在最近的视觉Transformer模型[17,63,68]中通过各种注意力机制实现,或在类MLP模型[51,52]中通过空间MLP实现。请注意,令牌混合器的主要功能是传播令牌信息,尽管一些令牌混合器(如注意力机制)也可以混合通道。
第二个子块主要由一个带有非线性激活的双层MLP组成,
其中和是可学习参数,MLP扩展比率为;是非线性激活函数,如GELU[25]或ReLU[41]。
MetaFormer的实例化。MetaFormer描述了一种通用架构,通过指定令牌混合器的具体设计,可以立即获得不同的模型。如图1(a)所示,如果令牌混合器被指定为注意力或空间MLP,则MetaFormer分别变为Transformer或类MLP模型。
自从Transformer[56]被引入以来,许多工作都非常重视注意力机制,并专注于设计各种基于注意力的令牌混合器组件。相比之下,这些工作对通用架构(即MetaFormer)的关注较少。
在本工作中,我们认为这种MetaFormer通用架构在很大程度上促成了近期Transformer和类MLP模型的成功。为了证明这一点,我们故意采用了一个非常简单的操作——池化(pooling),作为令牌混合器。这个操作没有可学习的参数,它只是让每个令牌平均地聚合其附近令牌的特征。
由于本工作针对的是视觉任务,我们假设输入是以通道优先的数据格式,即。池化操作可以表示为:
其中是池化大小。由于MetaFormer块已经有一个残差连接,因此在等式(4)中加上了输入本身的减法。池化的PyTorch风格代码如算法1所示。
众所周知,自注意力和空间MLP的计算复杂度与要混合的令牌数量成二次关系。更糟糕的是,当处理更长的序列时,空间MLP会带来更多的参数。因此,自注意力和空间MLP通常只能处理数百个令牌。相比之下,池化需要的计算复杂度与序列长度成线性关系,且没有任何可学习的参数。因此,我们通过采用类似于传统CNN[24,31,49]和最近的分层Transformer变体[36,57]的分层结构来利用池化。图2展示了PoolFormer的总体框架。具体来说,PoolFormer有四个阶段,分别包含、、和个令牌,其中和分别表示输入图像的宽度和高度。有两种嵌入尺寸组合:1) 小型模型,其嵌入维度分别为64、128、320和512,对应于四个阶段;2) 中型模型,其嵌入维度分别为96、192、384和768。假设总共有个PoolFormer块,则第1、2、3和4阶段将分别包含、、和个PoolFormer块。MLP扩展比率设置为4。根据上述简单的模型缩放规则,我们获得了5种不同大小的PoolFormer模型,其超参数如表1所示。
设置。ImageNet-1K [14] 是计算机视觉领域使用最广泛的数据集之一。它包含约130万张训练图像和5万张验证图像,涵盖常见的1000个类别。我们的训练方案主要遵循[53]和[54]。具体来说,我们使用了MixUp [65]、CutMix [64]、CutOut [66]和RandAugment [11]进行数据增强。模型使用AdamW优化器 [29,37] 训练300个周期,权重衰减为0.05,峰值学习率 (\mathrm{lr}=1 e^{-3} \cdot \text{batch size}/1024)(本文中使用批量大小为4096,学习率为(4 e^{-3}))。预热周期为5,使用余弦调度来衰减学习率。标签平滑 [50] 设置为0.1。禁用了Dropout,但使用了随机深度 [27] 和LayerScale [54] 来帮助训练深层模型。我们修改了Layer Normalization [1],以便与原始Layer Normalization仅沿通道维度计算均值和方差相比,它还沿令牌和通道维度进行计算。修改后的Layer Normalization(MLN)可以通过在PyTorch中将组数指定为1并使用GroupNorm API来实现,适用于通道优先的数据格式。如第4.4节所示,PoolFormer倾向于使用MLN。超参数的更多详细信息见附录。我们的实现基于Timm代码库 [58],实验在TPU上运行。
结果。表2展示了PoolFormer在ImageNet分类任务上的性能。定性结果见附录。令人惊讶的是,尽管使用了简单的池化令牌混合器,PoolFormer仍然能够与卷积神经网络(CNN)和其他MetaFormer类模型相比,实现极具竞争力的性能。例如,PoolFormer-S24达到了超过80%的top-1准确率,而仅需要2100万个参数和3.4 G MACs。相比之下,成熟的ViT基线DeiT-S [53]的准确率略低,为79.8%,并且需要多35%的MACs(4.6 G)。为了获得相似的准确率,类似MLP的模型ResMLP-S24 [52]需要多43%的参数(3000万)和多76%的计算量(6.0 G),但仅达到79.4%的准确率。即使与更先进的ViT和MLP类变体 [35,57] 相比,PoolFormer仍表现出更好的性能。具体来说,金字塔Transformer PVTMedium使用4400万个参数和6.7 G MACs获得了81.2%的top-1准确率,而PoolFormer-S36在参数(3100万)和MACs(5.0 G)上分别比PVT-Medium少30%和25%,却达到了81.4%的准确率。
此外,与RSB-ResNet(“ResNet反击”)[59]相比,ResNet [24]使用改进的训练程序进行了相同的300个周期的训练,PoolFormer仍然表现更好。RSB-ResNet-34 [59]在约2200万个参数/3.7 G MACs下获得了75.5%的准确率,而PoolFormerS24可以获得80.3%的准确率。由于池化层的局部空间建模能力远不及神经卷积层,PoolFormer的竞争力只能归因于其通用架构MetaFormer。
池化操作使每个令牌均匀地聚合其附近令牌的特征,因此它是一个非常基本的令牌混合操作。然而,实验结果表明,即使使用这种极其简单的令牌混合器,MetaFormer仍然能够获得极具竞争力的性能。图3清楚地表明,PoolFormer在MACs和参数更少的情况下超越了其他模型。这一发现表明,在设计视觉模型时,我们真正需要的是通用架构MetaFormer。通过采用MetaFormer,可以确保派生的模型具有实现合理性能的潜力。
设置。我们在具有挑战性的COCO基准数据集[34]上评估了PoolFormer,该数据集包括118K张训练图像(train2017)和5K张验证图像(val2017)。模型在训练集上进行训练,并报告在验证集上的性能。PoolFormer被用作两个标准检测器(即RetinaNet[33]和Mask R-CNN[23])的主干网络。我们使用在ImageNet上预训练的权重来初始化主干网络,并使用Xavier[20]初始化添加的层。训练采用AdamW[29,37],初始学习率为,批量大小为16。按照[23,33]中的设置,我们采用训练计划,即检测模型训练12个周期。训练图像被调整为短边800像素,长边不超过1333像素。在测试时,图像的短边也被调整为800像素。实现基于mmdetection[4]代码库,实验在8个NVIDIA A100 GPU上进行。
结果。在配备RetinaNet进行目标检测的情况下,基于PoolFormer的模型在表3中始终优于其可比较的ResNet对应模型。例如,PoolFormer-S12达到36.2 AP,大大超过了ResNet-18(31.8 AP)。在基于Mask R-CNN的目标检测和实例分割模型中,也观察到了类似的结果。例如,PoolFormer-S12在目标检测(bounding box AP 37.3 vs. 34.0)和实例分割(mask AP 34.6 vs. 31.2)方面都大大超过了ResNet-18。总体而言,对于COCO目标检测和实例分割任务,PoolFormer取得了具有竞争力的性能,始终优于ResNet对应模型。
设置。为了评估语义分割模型,我们选择了具有挑战性的场景解析基准ADE20K[67]。该数据集在训练集和验证集中分别包含20K和2K张图像,覆盖了150个细粒度语义类别。PoolFormer被评估为与Semantic FPN[30]相结合的主干网络。我们使用在ImageNet1K上训练的检查点来初始化主干网络,并使用Xavier[20]来初始化其他新添加的层。按照常规做法[5,30],我们以批量大小为16训练模型80K次迭代。为了加速训练,我们将批量大小加倍到32,并将迭代次数减少到40K。训练采用AdamW[29,37],初始学习率为,采用多项式衰减计划,衰减指数为0.9。图像被调整为进行训练,并在测试时调整为短边512像素。我们的实现基于mmsegmentation[10]代码库,实验在8个NVIDIA A100 GPU上进行。
结果。表4显示了使用FPN[30]的不同主干网络的ADE20K语义分割性能。基于PoolFormer的模型在性能上始终优于基于CNN的ResNet[24]和ResNeXt[62]以及基于Transformer的PVT作为主干网络的模型。例如,PoolFormer-12的mIoU达到37.1,分别比ResNet-18和PVT-Tiny高出4.3和1.5。
这些结果表明,尽管PoolFormer仅使用池化作为基本的信息传递方式,但作为主干网络,它在语义分割任务上仍能达到具有竞争力的性能。这进一步证明了MetaFormer的巨大潜力,并支持了我们的观点,即MetaFormer正是我们所需要的。
消融研究实验在ImageNet-1K数据集[14]上进行。表5报告了PoolFormer的消融研究结果。我们根据以下方面对消融研究进行讨论。
标记混合器。与Transformer相比,PoolFormer的主要变化是使用简单的池化作为标记混合器。我们首先通过直接用恒等映射替换池化来对这个操作进行消融研究。令人惊讶的是,使用恒等映射的MetaFormer仍然可以达到74.3%的top-1准确率,这支持了MetaFormer实际上是我们保证合理性能所需的关键组件的论点。
然后,我们用全局随机矩阵替换了每个块的池化操作。该矩阵使用区间[0,1)上的均匀分布随机值进行初始化,然后利用Softmax对每个行进行归一化。在随机初始化后,矩阵参数被冻结,并通过进行标记混合,其中是输入标记特征,标记长度为N,通道维度为C。由于第一阶段标记长度极长,随机矩阵的标记混合器为S12模型引入了额外的21M冻结参数。即使使用这种随机的标记混合方法,模型仍然可以达到75.8%的合理准确率,比恒等映射高出1.5%。这表明,即使使用随机标记混合,MetaFormer也能很好地工作,更不用说其他设计良好的标记混合器了。
进一步地,我们将池化替换为具有可学习参数的深度可分离卷积[9,38],用于空间建模。毫不奇怪,由于其更好的局部空间建模能力,所得到的模型在top-1准确率上仍然达到了78.1%的高度竞争力,比PoolFormer-S12高出0.9%。到目前为止,我们已经在MetaFormer中指定了多个标记混合器,并且所有得到的模型都保持了有前景的结果,很好地支持了MetaFormer是保证模型竞争力的关键组件的论点。由于池化的简单性,它主要被用作演示MetaFormer的工具。
池化大小。我们测试了池化大小对PoolFormer的影响。当池化大小为3、5和7时,我们观察到类似的性能。然而,当池化大小增加到9时,性能明显下降了0.5%。因此,我们为PoolFormer采用了默认的池化大小为3。
归一化。我们将层归一化[1]修改为改进的层归一化(MLN),与仅沿通道维度计算的原始层归一化相比,MLN沿标记和通道维度计算均值和方差。MLN的可学习仿射参数的形状与层归一化相同,即。通过在PyTorch中将组数设置为1,可以使用GroupNorm API来实现MLN。详细信息见附录。我们发现PoolFormer更倾向于MLN,其准确率比层归一化或批量归一化高出0.7%或0.8%。因此,MLN被设置为PoolFormer的默认值。当移除归一化时,模型无法很好地收敛,其性能急剧下降到只有46.1%。
激活函数。我们将GELU[25]更改为ReLU[41]或SiLU[18]。当采用ReLU作为激活函数时,观察到性能明显下降0.8%。对于SiLU,其性能几乎与GELU相同。因此,我们仍然采用GELU作为默认的激活函数。
其他组件。除了上述讨论的标记混合器和归一化之外,残差连接[24]和通道MLP[46,47]是MetaFormer中的另外两个重要组件。没有残差连接或通道MLP,模型无法收敛,并且仅达到0.1%/5.7%的准确率,证明了这些组件的不可或缺性。
混合阶段。在基于池化、注意力和空间MLP的标记混合器中,基于池化的混合器可以处理更长的输入序列,而注意力和空间MLP擅长捕获全局信息。因此,很自然地想到在底层阶段堆叠基于池化的MetaFormer来处理长序列,并在顶层阶段使用基于注意力或空间MLP的混合器,因为此时序列已经被大大缩短。因此,我们在PoolFormer的顶层一个或两个阶段中,将标记混合器池化替换为注意力或空间FC。从表5中可以看出,混合模型表现相当好。在底层两个阶段使用池化、在顶层两个阶段使用注意力的变体实现了高度竞争力的性能。它仅使用16.5M参数和2.5G MACs就达到了81.0%的准确率。相比之下,ResMLP-B24需要的参数(116M)和的MACs(23.0G)才能达到相同的准确率。这些结果表明,将池化与其他标记混合器结合用于MetaFormer可能是进一步提高性能的一个有前途的方向。
在本文中,我们将Transformer中的注意力机制抽象为一个标记混合器,并将整个Transformer视为一种通用架构,称为MetaFormer,其中标记混合器并未具体指定。我们指出,与其关注特定的标记混合器,MetaFormer才是我们实现合理性能所真正需要的。为了验证这一点,我们故意将MetaFormer的标记混合器指定为极其简单的池化操作。结果发现,由此得出的PoolFormer模型能在不同的视觉任务上取得具有竞争力的性能,这很好地支持了“MetaFormer正是视觉任务所需”的观点。
未来,我们将在更多不同的学习设置下进一步评估PoolFormer,如自监督学习和迁移学习。此外,探索PoolFormer是否仍能在NLP任务上发挥作用,以进一步支持“MetaFormer正是你所需”的论断,这将是一个有趣的研究方向。我们希望这项工作能激发更多未来研究,专注于改进基础架构MetaFormer,而不是过分关注标记混合器模块。
作者感谢Sea AI Lab的Quanhong Fu在本文技术写作方面的帮助。Weihao Yu感谢TPU Research Cloud (TRC)计划和Google Cloud研究积分对部分计算资源的支持。本项目部分由新加坡国立大学教师研究委员会资助(WBS: A-0009440-00-00)。Shuicheng Yan和Xinchao Wang是本文的通讯作者。
PoolFormer。在ImageNet-1K分类基准测试中,我们使用表6中所示的超参数来训练本文中的模型。根据表6中批量大小和学习率之间的关系,我们将批量大小设置为4096,学习率设置为。对于随机深度,我们遵循原始论文[27],将底层块的丢弃层概率从0.0线性增加到顶层块的。
混合模型。我们使用表6中的超参数来训练所有模型,除了那些使用池化和注意力作为标记混合器的混合模型。对于这些混合模型,我们发现将批量大小设置为1024,学习率设置为,并使用Layer Normalization[1]进行归一化时,它们的性能要好得多。
在本文中,PoolFormer模型在ImageNet-1K上默认训练了300个周期。对于DeiT[53]/ResMLP[52],观察到它们在400/800个周期后性能趋于饱和。因此,我们也对PoolFormer-S12进行了更长时间的训练实验,结果如表7所示。我们观察到PoolFormer-S12在大约2000个周期后性能趋于饱和,且Top-1准确率提高了1.8%。然而,为了与其他ViT/MLP类模型进行公平比较,我们仍默认训练PoolFormer 300个周期。
我们使用Grad-CAM[48]来可视化在ImageNet-1K上训练的不同模型的结果。我们发现,虽然ResMLP[52]也激活了一些不相关的部分,但所有模型都能定位到语义对象。在图中,DeiT[53]和ResMLP[52]的激活部分更为分散,而RSB-ResNet[24,59]和PoolFormer的激活部分更为集中。
我们将Layer Normalization[1]修改为Modified Layer Normalization(MLN)。与原始Layer Normalization仅沿通道维度计算均值和方差不同,MLN沿空间和通道维度计算。MLN的可学习仿射参数的形状与Layer Normalization相同,即。在PyTorch中,可以通过将组数设置为1来使用GroupNorm API实现MLN。比较细节如算法2所示。
E. PyTorch代码
我们在算法3中提供了与PoolFormer块中使用的模块相关的PyTorch风格代码。算法4进一步展示了使用这些模块构建的PoolFormer块。
YOLOv8l summary: 298 layers, 35762544 parameters, 0 gradients, 108.7 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 15/15 [00:02<00:00, 5.86it/s]
all 230 1412 0.974 0.978 0.993 0.767
c17 230 131 0.991 1 0.995 0.866
c5 230 68 0.95 1 0.995 0.854
helicopter 230 43 0.954 0.964 0.976 0.684
c130 230 85 0.987 1 0.995 0.699
f16 230 57 0.984 0.965 0.99 0.689
b2 230 2 0.926 1 0.995 0.827
other 230 86 1 0.951 0.987 0.578
b52 230 70 0.986 0.98 0.99 0.88
kc10 230 62 1 0.984 0.99 0.872
command 230 40 0.994 1 0.995 0.875
f15 230 123 1 0.99 0.995 0.701
kc135 230 91 1 0.976 0.992 0.688
a10 230 27 1 0.675 0.988 0.498
b1 230 20 1 0.966 0.995 0.713
aew 230 25 0.954 1 0.986 0.778
f22 230 17 0.976 1 0.995 0.75
p3 230 105 1 0.97 0.995 0.818
p8 230 1 0.881 1 0.995 0.697
f35 230 32 0.995 1 0.995 0.592
f18 230 125 0.987 0.984 0.994 0.85
v22 230 41 0.995 1 0.995 0.742
su-27 230 31 0.992 1 0.995 0.872
il-38 230 27 0.991 1 0.995 0.922
tu-134 230 1 0.874 1 0.995 0.895
su-33 230 2 0.963 1 0.995 0.597
an-70 230 2 0.916 1 0.995 0.895
tu-22 230 98 0.998 1 0.995 0.888