提出结构重参数化的论文RepVGG
重参数化已经用在了各个领域的各个方面:比如YOLO-V6,YOLO-V7,可以autoperform YOLO-V6和YOLO-V7的一个PP-YOLO 1+
我们想要一个像VGG一样的全是3*3卷积,一卷到底的结构,这样的结构并行度高、速度快而且省显存。此外,还对定制的硬件特别友好,我们可以定制一种硬件,这些芯片上只有一种计算单元,这样可以大大提高它的效率,也可以大大降低成本。
很容易想象这种从头到尾一卷到底的结构性能不好,所以后来才出现了对VGG改进的ResNet。一个多分支的模型训练出来的精度高但同时也伴随着其推理的效率低。一个单路的模型训练的时候精度低,但是推理的时候效率高。
是否能实现一个不同模型架构的等价转化:训练的时候是多分支的架构,但是我们将它等价地转换成一个推理的时候的单分支的架构。这样我们就兼顾了训练的高精度和推理的高效率。
一个结构对应于一组参数,如果我们可以找到一种办法把一组参数等价转换成另外一组参数,而另外一组参数又对应于另外一组结构,我们就可以把一个结构替换成另外一个结构。而这种替换是等价的。即所谓的结构重参数化。
结构重参数化的萌芽
卷积是一种特殊的FC,任何能用于卷积的东西能能被用于FC,找到一种能够将任意的卷积转化成任意的FC的一种形式,利用这种形式,可以将一般的FC里赋予某种局部性,从而使被赋予了局部性的FC层更适用于视觉任务。提出了一个非常适用于视觉任务的MLP模型。
在一个我们要剪的层后面加入一个11卷积。因为一个33卷积接一个11卷积可以等价转换成一个33卷积。而且转化后的33卷积的output channel等于之前11卷积的output channel。如果能找到一种办法来减少11卷积的output channel,就能减少最终的33卷积的output channel,就实现了剪枝的目的。可以实现在ResNet50上压缩50%完全不掉点。