从卷积拆分和分组的角度看CNN模型的演化
博客: 博客园 | CSDN | blog 写在前面 如题,这篇文章将尝试从卷积拆分的角度看一看各种经典CNN backbone网络module是如何演进的,为了视角的统一,仅分析单条路径上的卷积形式。 形式化 方便起见,对常规卷积操作,做如下定义, \(I\) :输入尺寸,长 \(H\) 宽 \(W\) ,令长宽相同,即 \(I = H = W\) \(M\) :输入channel数,可以看成是tensor的高 \(K\) :卷积核尺寸 \(K \times K\) ,channel数与输入channel数相同,为 \(M\) \(N\) :卷积核个数 \(F\) :卷积得到的feature map尺寸 \(F \times F\) ,channel数与卷积核个数相同,为 \(N\) 所以,输入为 \(M \times I \times I\) 的tensor,卷积核为 \(N \times M \times K \times K\) 的tensor,feature map为 \(N \times F \times F\) 的tensor,所以常规卷积的计算量为 \[FLOPS = K \times K \times M \times N \times F \times F \] 特别地,如果仅考虑SAME padding且 \(stride = 1\) 的情况,则 \(F =