FLOPs
参考文献:本论文的Appendix
知乎链接:https://www.zhihu.com/question/65305385
FLOPs(floating-point operations),即浮点操作的次数。在神经网络的前向计算时,乘法与加法各作为一次FLOP。
卷积操作:
假设非线性的激励函数的计算量不计。设输入的特征映射维度为
[H,W,Cin]
。当卷积层的参数为
[H,W,Cin,K]
,其中
H
为卷积层的height,
W
为卷积层的width,
Cin
为输入数据的channels,
K
为卷积核的个数。
参数量包括权重和偏置:
param=HWCinK+K=K(HWCin+1)
FLOPs的运算包括权重的运算和偏置的运算。
FLOPs=K(H′W′(2HWCin−1))+K(H′W′)=2KH′W′HWCin
其中
H′
和
W′
分别为输出数据的高度和宽度。
当卷积层的参数为
[H,W,Cin/2,K]
时
FLOPs=2∗K2(H′W′(2HWCin2−1))+KH′W′=KH′W′HWCin
对于全连接层,设权重的维度为
[I,O]
,计算的FLOPs为
FLOPs=O(I+I−1)+O=2IO