优化网站排名如何,企业信息查询系统官网广东,设计企业网站哪家好,培训计划模板Deformable Convolution v4 (DCNv4)#xff0c;这是一个创新性的优化稀疏DCN操作符以提高实际效率的进步。DCNv4具有更快实现的实现和改进的操作符设计#xff0c;以提高其性能。
论文#xff1a; arxiv.org/pdf/2401.06197.pdf
开源链接#xff1a; https://github.com/…Deformable Convolution v4 (DCNv4)这是一个创新性的优化稀疏DCN操作符以提高实际效率的进步。DCNv4具有更快实现的实现和改进的操作符设计以提高其性能。
论文 arxiv.org/pdf/2401.06197.pdf
开源链接 https://github.com/OpenGVLab/DCNv4 这是一个用于广泛视觉应用的高效且有效的操作符。DCNv4解决了其前驱DCNv3的局限性通过两个关键的改进 在空间聚合中移除softmax归一化以增强其动态特性和表达能力 优化内存访问以最小化冗余操作以提高速度
这些改进导致DCNv4相对于DCNv3的收敛速度显著加快处理速度大幅提升DCNv4实现了超过三倍的正向速度。DCNv4在各种任务上表现出卓越的性能包括图像分类、实例分割和显著的图像生成。当集成到潜在扩散模型中的生成模型如U-Net时DCNv4超过了其 Baseline 证实了其提高生成模型的可能性。在实际应用中将DCNv3替换为DCNv4在IntermImage模型中创建FlashhturerInImage实现了高达80%的速度提升且无需进一步修改即可获得进一步的性能提升。DCNv4在速度和效率方面的改进以及其在各种视觉任务上的强大性能表明其作为未来视觉模型基础构建块的潜力。
1 Introduction
在计算机视觉领域人们一直在讨论卷积网络 (ConvNets) 和Transformer模型哪个具有更好的性能。近年来Transformer模型在大视觉模型中通过注意力机制取得了显著的成果显示出超越ConvNets的潜力。然而最近的工作如Intermlmage和ConvNeXt表明基于 ConvNet的视觉模型在各种下游任务上保持了健壮的性能、效率、简单性和适合的归纳偏差。值得注意的是在图像生成的领域卷积仍然是首选方法。这种情况突显了基于卷积方法的价值。 首先作者对现有实现进行了指令级 Kernel 分析并发现DCNv3已经非常轻量。计算成本不到1%而内存访问成本为99%。这激励作者重新检查操作符实现并发现DCN向前过程中许多内存访问都是冗余的因此可以进行优化从而导致DCNv4实现速度大大提高。 第二受到卷积无限权重范围启发作者发现空间聚合中的softmax归一化在密集注意力中是标准操作但在DCNv3中是不必要的因为每个位置都有专用的聚合窗口不是所有聚合运算都需要softmax归一化。直观上softmax将权重限制在0~1的范围内将限制聚合权的表达能力。这一洞察力使作者删除了DCNv4中的softmax增强了其动态特性和性能。因此DCNv4不仅比DCNv3收敛得更快而且前向速度提高了超过3倍。这种改进使DCNv4能够充分利用其稀疏特性成为最快的基本核心视觉运算符之一。 进一步将DCNv3替换为DCNv4创建了FlashInternImage。值得注意的是FlashInternImage与InternImage相比在没有任何额外修改的情况下实现了50%~80%的速度提升。这种改进使FlashInternImage成为最快的现代视觉 Backbone 网络之一同时保持了优越的性能。借助于DCNv4FlashInternImage在ImageNet分类和迁移学习设置中的收敛速度显著提高进一步在下游任务中展示了改进的性能。 此外DCNv4在各种架构和任务中显示出作为通用视觉运算符的潜力。作者将DCNv4集成到其他现代 Backbone 架构中包括ConvNeXt和ViT用深度卷积和密集自注意力层替换。令人惊讶的是在没有任何超参数调整的情况下这些精心设计的网络在DCNv4下表现得一样好而且更快展示了动态稀疏DCNv4的有效性和效率。此外作者在生成模型作为新的应用领域中探索了DCNv4的潜力。 具体来说在潜在扩散模型中使用U-Net架构用DCNv4替换常规卷积。作者的实验结果显示DCNv4在图像生成方面可以比 Baseline 表现更好显示了使用DCN改进生成模型的巨大潜力。
2 Related Work
视觉模型中的核心运算符: 标准卷积是最普遍和最具影响力的运算符构成了大多数计算机视觉架构的基础。然而许多具有独特特性的运算符共同发挥重要作用在计算机视觉的发展中起着关键作用。深度可分卷积 (DWConv) 将空间和通道操作分离在开发轻量和高效模型中发挥了关键作用。Re-pLKNeti兑明利用大核深度可分卷积的纯卷积网络可以在效率和有效性方面达到竞争性能。变形卷积 (DCN) 系列通过向卷积核中添加可学习偏移量显著提高了卷积的适应性。
与卷积相反注意力机制具有建模长程依赖的能力并在各种计算机视觉任务中成功应用。窗口注意力通过限制注意力操作到固定大小的窗口减少了纯注意力固有的计算复杂性。为了减轻纯注意力的高计算复杂性变形注意力使每个 Query 可以集中于一组选择的关键采样点这些位置和权重是动态确定的。这种有效的方法广泛应用于以下艺术感知方法。动态卷积和动态-DWNet通过引入动态权重增强深度可分卷积DWConv从而允许使用实例特定的权重这些权重可以动态地适应。对于非网格结构的数据稀疏运算符利用通过双线性插值或参数方式获得的动态权重。
视觉 Backbone 模型中的内存访问成本 (MAC) : 正如以前的研究所强调的那样FLOPs虽然是一个常用的度量模型复杂性的指标但并不能准确地反映模型的速度或延迟。在实际场景中模型的运行速度受到多个因素的影响而不仅仅是FLOPs。内存访问成本 (MAC) 在这种背景下起着特别重要的作用。Flash-Attention通过减少对高带宽内存 (HBM) 的访问次数在具有比纯注意力更高的FLOPs 的情况下实现了显著更快地速度。 3 Method
Rethinking the Dynamic Property in Deformable Convolution 增强动态性质 受此观察启发作者在DCNv3中移除了softmax归一化将介于0和1之间的调制标量转换为类似于卷积的无界动态权重。如图2所示这种改变进一步增强了DCN的动态性质其中其他运算符具有一定的限制例如有界值范围注意/DCNv3或具有输入无关聚合权的固定聚合窗口卷积。
图1(b)显示通过进行这种改变DCNv4的收敛速度显著快于DCNv3和其他常见运算符包括卷积和注意。第4节的结果进一步展示了DCNv4在预训练和迁移学习设置中表现良好。 Speeding up DCN GPU效率的理论分析 此外现代半精度数据格式 (float16/bfloat16) 将需要加载的字节减半这意味着在相同内存带宽下使用半精度格式时内存效率可以提高一倍。然而在作者的原始DCNv3实现中使用半精度数据并未看到速度提升这可能是由于数据访问和计算上的开销太大而在作者的新实现中速度提升显著。值得注意的是上述优化技术也可以应用于DCNv1/v2和变形注意力因为它们共享类似的性能瓶颈和问题。
DCN 模块的微观设计 DCNv3模块引入了多个微观设计作为核心 Kernel 被优化后它们对速度的影响变得非可忽略。作者确定了DCNv3设计中可以进一步优化的两个点: 首先在去除softmax并将其调制标量转换为动态聚合权重如前所述之后。计算偏移量和动态权重的线性层实际上可以合并为一个线性层。这减少了网络碎片化并消除了额外的开销例如 Kernel 启动和同步从而提高了GPU上的运行效率 其次在原始DCNv3模块设计中使用了一个复杂的子网络包括深度卷积3x3卷积、层规范化LN、GELU和线性层来计算偏移量和动态权重。遵循Xception的设计删除了额外的LN-GELU层并使用原始的可分卷积结构进一步减少了运行时间。实际发现如果延迟是首要考虑的因素深度卷积也可以删除但仅会牺牲少量性能。
4 Experiments
在本节中从速度和性能的角度验证了所提出的DCNv4模块的有效性。首先在运算符 Level 进行速度基准测试并将DCNv4集成到 Backbone 模型中以测试系统级性能。所有速度测试结果都是在NVIDIA A100 80G SXM GPU上获得的。由于空间限制作者将其他超参数设置和硬件/软件环境等实验结果和实现细节包括在附录中。
Speed Benchmark for Operators 然而它并没有改变注意力的二次复杂度当输入分辨率较高时它仍然落后于局部/稀疏运算符如窗口注意力和卷积。虽然DCNv3在简单实现上可以比DWConv更快但在优化的cuDNN版本中仍然较慢。相反DCNv4可以比DCNv3快3倍以上大大节省运行时间。
此外DCNv4可以成功地利用使用3×3稀疏窗口的优势在不同的设置下比其他 Baseline 快得多。 Image Classification Downstream Tasks with High-Resolution Input
作者进一步评估DCNv4在高分辨率输入下的代表性下游感知任务性能包括实例分割、语义分割和3D目标检测。作者保持所有实现细节与InternImage相同仅将 Backbone 模型更改为FlashInternImage进行公平比较。在训练下游模型时 Backbone 模型从ImageNet预训练权重初始化。
实例分割 在COCO数据集上使用两个代表性的实例分割框架Mask R-CNN和Cascade Mask-RCNN以112个epoch和336个epoch的训练schedule训练FlashInternImage。 结果如Tab. 5所示还报告了批处理大小为16的FP32/FP16数据格式下的FPS。FlashInternImage在所有模型规模和训练schedule上都表现出优越的结果实现了更高的速度-准确性权衡。例如FlashInternImage-T/S在相同规模下超越了所有其他模型与较大的InternImage-S/B相当同时快80%-90%。
语义分割 在ADE20K数据集上使用UperNet训练FlashInternImage进行了160K次迭代。从Tab. 6的结果中可以得出与实例分割类似的结论其中FPS以批处理大小16的FP32/FP16报告。配备DCNv4的FlashInternImage可以实现显著更快的速度并进一步提高了InternImage在不同模型规模上的性能从而实现了新的最先进状态。 3D检测 进一步在基于相机的3D目标检测任务上测试DCNv4该任务是自动驾驶场景中的一个重要应用。在nuScenes数据集上使用BEVFormer v2这是一个最先进的基于多摄像头的3D目标检测器使用Flashlnternlmage-Small和Base Backbone 模型进行24个epoch的训练。 作者可以看到DCNv4在生成建模方面也表现良好与U-Net中的常规卷积相比在FID/吞吐量方面取得了更好的结果而参数更少。请注意DCNv4的架构/超参数可能不是最优的可能重新设计模型或为DCNv4寻找新的超参数会得到更好的结果。
Ablation Study
在Sec. 3.2描述的优化选择中进行了ablation study。结果如下所示Tab. 10。 5 Conclusion
作者提出了Deformable Convolution v4 (DCNv4)这是一个高效且稀疏的动态运算符。通过对变形卷积的动态性质进行重新思考并优化内存访问DCNv4比其前驱DCNv3更快、更有效。
配备了DCNv4的FlashInternImage Backbone 不仅提高了速度还改善了各种视觉任务上的性能。作者还展示了DCNv4的通用性和有效性将其集成到最先进的架构如ConvNeXt和ViT中提高了吞吐量并提高了准确性同时它在潜在扩散模型中也表现出色展示了其增强生成模型的潜力。
Appendix A Implementation Details
环境 在所有实验中使用NVIDIA A100 80GB SXM GPU来衡量吞吐量。软件环境是PyTorch 1.13CUDA 11.7cuDNN 8.5。在测试Flash Attention时使用Flash Attention 2.3.1。当在Swin Transformer中测试窗口注意力时作者使用timm 0.9.7的PyTorch实现。
在COCO数据集上进行2D目标检测以验证DCNv4的有效性。采用了两种目标检测方法Mask R-CNN和Cascade Mask R-CNN主要参考Interimange的设置。作者使用两个调度1x12个epochs和3x36个epochs以分别评估模型的收敛速度和最终性能。对于1xschedule将图像重新缩放到较短的一侧为800像素较长的一侧不超过1333像素。
在评估阶段输入图像的较短一侧始终设置为800像素。对于3xschedule将较短的一侧重新缩放到480到800像素之间而较长的一侧保持为1333像素。基本学习率设置为1e-4批处理大小为16。使用AdamW优化器并包含0.05的重量衰减。Backbone 网络的初始化是预训练的分类权重。
在ADE20K数据集上进行2D语义分割以验证DCNv4的有效性。作者的实验设置主要基于InternImage。对于FlashInternImage-T/S/B和FlashInternImage-L分别使用AdamW优化器学习率分别为6e-5和2e-5。FlashInternimage T/S/B的裁剪大小设置为512而FlashInternImage-L的裁剪大小设置为640。使用16的批处理大小在160k迭代下训练所有模型以确保与以前方法进行公平比较。Backbone 网络的初始化也是预训练的分类权重。
在nuScenes数据集上进行3D目标检测以验证DCNv4的有效性。作者采用了BEVFormerV2来验证在nuScenes数据集上进行3D目标检测的方法。遵循BEVFormerV2的设置 Backbone 网络在COCO数据集上进行预训练。与BEVFormerV2一致使用了总共8秒的数据涵盖过去和未来的信息。使用AdamW优化器批处理大小为16学习率为4e-4。训练模型24个epoch。
Appendix B Additional Experimental Results
带有高级标题的下游结果使用更先进的DINO和Mask2Former来进一步验证FlashInternImage的有效性如Tab. 1和Tab. 3所示。 对于COCO上的2D目标检测使用DINO头在12个epoch下训练作者的模型。在训练期间采用与上述多尺度训练策略相同的策略。其他设置包括优化器、权重衰减和学习率也与Mask-RCNN中使用的设置相同。
对于ADE20K上的2D语义分割将学习率设置为1e-4批处理大小为16。对于Base和Large规模使用640的裁剪大小。其他设置与UperNet中使用的设置相同。 观察表明用DCNv4替换之前使用的DWConv或Attention可以提高推理速度。对于ConvNext使用DCNv4而不是DWConv也可以实现更高的性能。 whaosoft aiot http://143ai.com