大核卷积及其计算性能优化

大核卷积

参考的文章是:

最开始是看到:

卷积网络的 kernel size 可以多大?答案是:25x25 就很好,31x31 甚至更好。我们发现卷积网络的基础设计维度——kernel size——对模型的性能特别是分割和检测等下游任务至关重要。我们提出一种大量采用超大卷积核的模型——RepLKNet,在结构重参数化、depthwise 卷积等设计要素的加持下,超大卷积既强又快,在目标检测和语义分割等任务上超过 Swin Transformer 而且远超传统小卷积模型。比如,在ImageNet数据集上RepLKNet取得了87.8%的top1精度;在ADE20K数据集上,RepLKNet取得了56.0%mIoU指标。 在部署落地方面,我们提出一种专门为超大卷积核优化的卷积算法以实现大幅加速,所以 RepLKNet 不但 FLOPs 低,实际运行也快,对工业应用非常友好

提升大核卷积计算性能方案:

一:depthwise 卷积

不同于常规卷积操作,Depthwise Convolution的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。上面所提到的常规卷积每个卷积核是同时操作输入图片的每个通道。
同样是对于一张5×5像素、三通道彩色输入图片(shape为5×5×3),Depthwise Convolution首先经过第一次卷积运算,不同于上面的常规卷积,DW完全是在二维平面内进行。卷积核的数量与上一层的通道数相同(通道和卷积核一一对应)。所以一个三通道的图像经过运算后生成了3个Feature map(如果有same padding则尺寸与输入层相同为5×5),如下图所示。


  • UniRepLKNet使用深度卷积(Depthwise Convolution)代替密集卷积(Dense Convolution),这样可以将参数量和浮点运算(FLOPs)减少到输入通道数的倒数。深度卷积是一种逐通道的卷积操作,它可以保持输入和输出的通道数相同,而不需要额外的1x1卷积进行通道混合。

二:结构重参数化

使用结构重参数化(Structural Reparameterization)技术,这是一种将大核卷积转换为小核卷积的方法,可以减少优化难度和计算复杂度1。结构重参数化是一种训练时和推理时的动态结构调整技术,它可以在训练时使用小核卷积来模拟大核卷积的效果,然后在推理时将小核卷积折叠为大核卷积,从而保持模型的性能和效率。

1大核卷积指导方针

大核卷积的实用往往伴随着性能与速度的下降,为此,我们总结了5条大核卷积高效使用的指标方针。

大核深度卷积可以更高效

一般来讲,大核卷积计算量非常大。这是因为核尺寸会导致参数量与FLOPs的二次提升,而这个弊端可以通过Depth-wise卷积解决。比如,RepLKNet的的卷积核从[3,3,3,3]提升到了[31,29,27,13],但FLOPs与参数量仅增加18.6%与10.4%。实际上,计算复杂度主要由1×1卷积主导。

也许有人会说:深度卷积计算效率低。对于常规3×3深度卷积确实如此,这是因为其存算比(每次只有9个乘法)过低导致;而大核深度卷积的存算比更高(11×11深度卷积,每次有121个乘法),其实际推理延迟并未大幅提升。

不幸的是,现有深度学习框架对大核卷积的支持很差,见上表。我们尝试了几种方法进行优化加速,最终选择了block-wise(inverse) implicit gemm方案,该方案已集成到MegEngine。从上表可以看到:相比pytorch的实现,MegEngine优化的方案速度更快,推理延迟从49.5%下降到了12.3%,近似正比于FLOPs。

恒等跳过连接对于大核卷积非常重要

为验证此,我们采用MobileNetV2作为基线(它同时具有深度卷积与跳过连接)。对于大核版本,我们采用13×13深度卷积替换原始的深度卷积。上表给出了性能对比,从中可以看到:(1) 大核卷积+短连接可以提升其性能达0.77%;(2)移除短连接后,大核卷积的性能仅为53.98%。

小核重参数有助于弥补优化问题

我们将MobileNetV2中的3×3卷积替换为9×9,13×13并采用结构重参数技术,可参考上图。完成训练后,我们再参考结构重参数进行模块折叠,即转换后的模型将不再包含小核等两者等价。关于结构重参数化相关的知识可以参考作者的RepVGG与DBB,这两篇paper的解读可参考:

RepVGG|让你的ConVNet一卷到底,plain网络首次超过80%top1精度
CVPR2021|“无痛涨点”的ACNet再进化,清华大学&旷视科技提出Inception类型的DBB

从上表结果可以看到:将卷积核尺寸从9提升到13反而会带来性能下降;而引入结构重参数化后则可以解决该问题。类似的现象在语义分割任务也再次发生。也就是说,通过结构重参数技术,提升卷积核尺寸将不再导致性能下降。

大核卷积对下游任务的提升更明显

前面Table3的结果表明:对于ImageNet分类卷积核从3提升到9带来的性能提升为1.33%,而Cityscapes的性能提升则达到了3.99%。上表Table5也带来的类似的趋势,这意味着:具有相似ImageNet分类性能的模型可能具有完全不同的下游任务迁移能力

那么,其背后的根因是什么呢?首先,大核设计可以大幅提升感受野(Effective Receptive Fields, ERFs),而感受野对于下游任务非常重要;其次,我们认为大核设计可以为网络带来更多的形状偏置

大核卷积对于小图仍然有效

为验证此,我们将MobieNetV2最后一阶段的深度卷积尺寸提升到7和13,因此卷积核尺寸比特征尺寸相当、甚至更大。

从上表可以看到:尽管最后阶段的卷积已有包含非常大的感受野,进一步提升感受野还可以进一步提升下游任务的性能。

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值