首先要理清楚:FLOPs的计算是包括了加法次数的
CNN
输入尺寸 ,卷积核的大小为 * ,输出的尺寸大小为
参数量
(1)不考虑bias:
(2)考虑bias:
FLOPs
(1)不考虑bias
解释:先计算输出的中一个元素需要的计算量,即括号这一部分,根据卷积的公式可知这部分为 * + * ,其中前一项表示做了的乘法次数,后一项表示这些乘法结果的相加次数,因为个数相加需要次。所以显然如果考虑bias的话刚好把这个给补回去。
(2)考虑bias
全连接
输入维度,输出
参数量
(1)不考虑bias:
(2)考虑bias:
FLOPs
这个很简单,全连接层就理解为一个矩阵,是矩阵行数,为列数,若不考虑bias,则先计算输出向量中的一个元素需要多少计算量,首先要做次乘法,然后做次加法。若考虑bias,则做的加法会多一次
(1)不考虑bias
(2)考虑bias
Depth-wise CNN(深度可分离卷积)
输入尺寸 ,卷积核的大小为 * ,输出的尺寸大小为 :
深度可分离卷积的过程:
- 将普通卷积分为组,进行卷积的时候是没有普通卷积中在通道维度上求和的过程的
- 用一个的卷积核来进行通道融合,所以总的参数量和FLOPs计算如下
不考虑bias的情况下计算如下:
考虑bias的情况计算如下:
网友评论