论文连接:
论文代码:
一、RepVGG网络结构的细节
RepVGG与目前业界较优的网络模型在精度和性能上的比较,左边的RepVGG为轻量级和中量级的网络模型结构的对比结果图,右边的RepVGG为重量级的网络模型结构的对比结果图。可以发现RepVGG在精度和速度上均取得非常有竞争力的结果。重量级的RepVGG网络模型在ImageNet数据集上的精度超过了80%,这是基础模型的首次能够达到这个精度,非常令人惊喜。
1、网络结构
作者提出了一个简单但强大的卷积神经网络架构,该架构具有类似于VGG的推理时间主体,该主体仅由3x3卷积和ReLU的堆栈组成,而训练时间模型具有多分支拓扑。作者通过将训练过程和推理时间进行解耦来实现精度和速度的完美兼得,即在模型进行前向推理时采用参数融合的方案来实现对于模型速度的提升,采用的技术简称为结构重新参数化(re-parameterization),因为作者也将提出的新型网络称为RepVGG。
该新型网络的核心结构如下:
由上面的核心网络结构可以看出,RepVGG与ResNet有一定相似之处,都采用了1*1的short cut操作和直接的short cut操作,两者的区别在于ResNet是每隔两层或三层加一分支,而RepVGG是每层都加上一个或二个并行分支。可以预期RepVGG在每一个卷积层上都进行二个或三个分支并行融合操作会显著提升模型泛化性和表征能力,但相对来说就会引入一定的参数量和降低模型速度,分支并行操作对速度和参数量不太友好,需要说明的是在RepVGG在第一层并没有进行三个并行连接操作,且stride为2,进行特征维度上的降维,这里没有使用maxpooling层进行降维,如果这里使用maxpooling进行降维,会不会导致精度会有所下降。在训练模型的过程中模型就是按照上图进行一路3*3卷积+并行融合操作+relu进行操作。虽然在训练过程中引入的并行操作会导致模型参数量变大很多,且速度降低很多,但是这篇文章的核心亮点就在于将训练过程的线性操作进行融合,即将二路或者三路并行分支进行融合,得到最终只包含3*3卷积+relu的操作,这个思想类似于ACNet的操作,这篇文章的作者也是ACNet结构的原作者。
二、RepVGG前向推理时并行操作的融合