FLOPS(全大写) :是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。

FLOPs(s小写) :是floating point operations的缩写(s表示复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。

我们来计算一个卷积的FLPOs:

卷积层(不考虑激活函数): ( 2 × C i n × K 2 − 1 ) × H × W × C o u t (2 \times C_{in} \times K^{2} - 1) \times H \times W \times C_{out} (2×Cin×K21)×H×W×Cout

其中 C i n C_{in} Cin是输入特征的通道数, K K K是卷积核尺寸, H 和 W H和W HW是输出特征的尺寸, C o u t C_{out} Cout是输出特征的通道数。

在这里插入图片描述

2是因为一个MAC(加乘运算)算2个operation。

不考虑bias时有-1,考虑时没有-1。

公式理解:

括号内是计算出输出特征的一个pixel,然后再乘以输出特征的尺寸和宽度,从而扩展到整个特征图的计算量。

括号内的运算可以分成两部分, ( 2 × C i n × K 2 − 1 ) = C i n × K 2 + C i n × K 2 − 1 (2 \times C_{in} \times K^{2} - 1) = C_{in} \times K^{2} + C_{in} \times K^{2} - 1 (2×Cin×K21)=Cin×K2+Cin×K21,第一部分是乘法运算数,第二项是加法运算数,因为n个数相加,要加n-1次,所以如果不考虑bias的话,会有一个-1,如果考虑的话,就没有-1了。

我们再来计算一下全连接层的FLPOs:

卷连接层: ( 2 × I − 1 ) × O (2 \times I - 1) \times O (2×I1)×O

其中I是输入神经元数量,O是输出神经元数量。

2是因为一个MAC算2个operation。

不考虑bias时有-1,考虑时没有-1。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐