CVPR2021
RepVGG: Making VGG-style ConvNets Great Again
本质就是结构重参数化,将训练时的多分支结构等效为推理时的单路径结构。
Abstract
与ResNet比速度(精度稍微超出一点的前提下),与EfficientNer比速度-精度的平衡
Introduction
论述当前模型的重心都是增加模型的复杂度,并分析了这样做的缺点,增大内存。
提出FLOPs(浮点运算数量,越小越好)不能完全反映模型的实际速度,后面内容有对此部分的呼应。
说明RepVGGd的优点:类似VGG,没有侧分支;构成简单,3*3卷积和ReLU;没有其他的复杂设计。
论述RePVGG的提出思路:多分支对训练很有帮助,但是推理速度会变慢 ,将训练的多分支在推理时等效为单路径。
上图中的identity为恒等映射
Related Works
从单路径到多分支:论述多分支结构模型的缺点
单路径模型有效训练:之前的单路径模型的论述,初心是便于模型收敛,而不是取得更高的性能
模型重参数化:介绍一些模型重参数化的方法,论述与本论文方法的不同
Model
使用简单卷积神经网络的原因:快;内存经济;灵活。
快:访问内存的开销和并行度,多分支增大内存开销,相同FLOPs下,并行度越高速度越快。
内存经济:多分支结构增加内存,每一个分支需要保留到全部相加之后再释放。
灵活:多分支结构限制了架构和模型剪枝。
训练时采用多分支结构
推理时重参数化
参考视频【14.1 RepVGG网络讲解】 ,14.1 RepVGG网络讲解_哔哩哔哩_bilibili
参考博客RepVGG网络简介_太阳花的小绿豆的博客-CSDN博客
大体过程:先将每条支路的卷积层(无偏置)和BN层合为一个新的带偏置的卷积层,再将新的卷积层等效转化为3*3的卷积层,最后将各支路卷积层合并为单路径的卷积层。
合并卷积层(无偏置)和BN层
合并后的权重和偏置
将合并后的1*1卷积转化为3*3卷积,注意padding变化 ,以此保证输出不变
将BN层转化成3*3卷积,注意padding变化 ,以此保证输出不变
最终等价效果
论文中重参数化结构图
Experiments
下图为分类实验,对比可以看出,RepVGG的精度更高,速度更快,参数量更少。
理论FLOPs比EfficientNet多,但是速度和精度RepVGG更高,验证了论文前面说的FLOPs并不能准确反映实际速度。
消融实验
Conclusion
回应Abstract