4实验
4.1 消融实验
1、线性缩放层和优化多样性
图7
首先进行实验来验证核心思想,即所提出的线性缩放层与BN层起着相似的作用。根据3.4中的分析。文章展示了缩放层和BN层都能够多样化优化方向。为了验证这一点,作者可视化了图7中所有分支的分支级相似性。作者发现,缩放层的使用可以显著增加不同分支的多样性。
在表2中验证了这种多样性的有效性。以ResNet-18结构为例,这两种层(BN和线性缩放)带来了相似的性能增益(即0.42vs.0.40)。这有力地支持了本文的观点,即在重参化中,最重要的是缩放部分,而不是统计标准化部分。
2、各种线性化策略
本文作者尝试了各种尺度层的线性化策略。具体来说4种变体:
- Vector:利用一个通道级向量,并沿着通道轴执行缩放操作。
- Scalar:用一个标量来缩放整个特征图。
- W/o scaling:删除分支级缩放层。
- W/o post-addition BN:删除后BN层。
从表3中发现,无论是部署标量缩放层还是不部署缩放层,都会导致较差的结果。因此,选择向量缩放作为默认策略。
作者还研究了加法后BN层的有效性。如3.2中所述。添加了后BN层来稳定训练过程。为了证明这一点,作者删除了这些层,如表3中的最后一行所示,梯度变成无穷大,模型无法收敛。
3、每个组件都很重要
对ResNet-18和ResNet-50的结构都进行了实验。如表2所示,每个组件都有助于提高性能。
4、Online vs. offline
作者比较了OREPA-ResNet-18与DBB-18的训练成本进行了对比。举例说明了消耗的内存(图8(a))和训练时间(图8(b))。
随着组件数量的增加,离线重参化模型面临着内存利用率快速增加和训练时间长的问题。由于高内存成本,甚至不能在ResNet-18模型中引入Deep Stem。相比之下,在线重参化策略将训练速度提高了4×,并节省了高达96+%的额外GPU内存。总体的训练开销大致与基本模型(普通ResNet)的水平相同。
4.2 与其他重参化对比
从表4中观察到在ResNet系列上,OREPA可以在各种模型上的性能持续提高+0.36%。同时,它将训练速度加速了1.5×至2.3×,并节省了约70+%的额外训练时间内存。
作者还对VGG结构进行了实验,比较了OREPA-VGG和RepVGG。对于OREPA-VGG模型,简单地用在OREPA-中使用的OREPA-res-3×3分支。这种修改只引入了边际的额外训练成本,同时也带来了明显的性能增益(+0.25%∼+0.6%)。
4.3 目标检测与语义分割
4.4 局限性
当简单地将所提出的OREPA从ResNet转移到RepVGG时,作者发现基于残差和无残差(VGG-like)结构之间的性能不一致。因此,在RepVGG块中保留了所有的三个分支,以保持具有竞争性的精度,这就略微增加了计算成本。这是一个有趣的现象。
5参考
[1].OREPA: Online Convolutional Re-parameterization
6推荐阅读
深度可分离ViT | SepViT | 深度可分离卷积造就深度可分离Transformer
即插即用 | XBN让ResNet、ShuffleNet彻底解决BN的局限和缺点