《Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks》 Pconv
论文链接:https://paperswithcode.com/paper/run-don-t-walk-chasing-higher-flops-for
我主要观察Pconv的工作原理
出发点
卷积核内容,就是我们需要具体迭代得参数,如图黄色部分内容。该参数就是3×3×3。
这是对三通道,使用3×3的卷积核,输出一个通道的情况。
延迟时间:模型推理和后处理时间。时间越小,执行速度越快。
模型的延迟时间的计算公式如下。其中FLOPS是每秒运算次数,FLOPs是总共浮点运算次数。虽然有许多减少FLOPs的尝试,但都很少考虑同时优化FLOPS以实现真正的低延迟。
然而,作者观察到,这种FLOPs的减少并不一定会导致类似延迟时间的减少。这主要源于低效率的每秒浮点运算(FLOPS)。因此,作者提出了一种新的partial convolution(PConv),通过同时减少冗余计算和内存访问,更有效地提取空间特征。
解决方案
设图中的输入通道和输出通道都是 C,卷积核大小为K × K
图a是普通卷积,对每个输入通道,都使用不同的卷积核,如图一:参数量为:K × K × C²
图b是DW卷积,DW卷积对每个输入通道都使用同一个的卷积核:参数量为:K × K × C。然而实际直接使用C会导致精度大幅度下降,所以C实际取值大于输入通道数C。
图c是论文提出的PConv,**只取部分通道上的信息进行卷积,其他通道上的信息则原封不动保留下来。**参数量为:K × K × Cp。其中r = Cp/C,r通常取1/4。
具体代码:
Besides
论文通过计算F范式来评估了位置的重要性。下图是对3×3的卷积核进行评估,说明中心位置更为重要。
由此,作者选择,先对图像进行一个1×1的卷积,对所有通道都同时使用(PWConv)。再使用PConv。这样更符合上F范式所得出的结论。卷积结构更加关注中心信息。
FasterNet
实验