[重读经典论文]RepVGG: Making VGG-style ConvNets Great Again

发布时间 2023-05-28 23:40:40作者: 大师兄啊哈

1. 参考

视频:14.1 RepVGG网络讲解

博客:RepVGG网络简介

2. 主要内容

2.1.与其他网络对比

如下图所示,RepVGG无论是在精度还是速度上都已经超过了ResNet、EffcientNet以及ReNeXt等网络。

与其他网络对比-高清

2.2. 创新点,结构重参数化

在训练时,使用一个类似ResNet-style的多分支模型,而推理时转化成VGG-style的单路模型,如下图所示,图(B)表示RepVGG训练时所采用的网络结构,而在推理时采用图(C)的网络结构。

结构

2.3. 训练为何用多分支

类似Inception系列、ResNet以及DenseNet等模型,我们能够发现这些模型都并行了多个分支。至少根据现有的一些经验来看,并行多个分支一般能够增加模型的表征能力,如下图所示通过是否选择1*1分支和恒定映射分支的消融实验,可以得出多分支可以提高模型性能的结论。

消融

2.4. 推理为什么用单路

  • 更快:考虑到硬件计算的并行程度和内存访问成本,多分支模型在推理时需要分别计算每个分支的结果(快的还要等慢的),导致硬件算力利用率低且并行度不高,并且频繁的内存访问和写入会浪费大量时间。
  • 省内存:如图下图(A)所示的Residual模块,假设卷积层不改变channel的数量,那么在主分支和shortcut分支上都要保存各自的特征图或者称Activation,那么在add操作前占用的内存大概是输入Activation的两倍,而图(B)的Plain结构占用内存始终不变。

省内存

  • 更灵活:对于多分支的模型,结构限制较多剪枝很麻烦,而对于Plain结构的模型就相对灵活很多,剪枝也更加方便。

(完)