参考链接:深度学习中的FLOPs是什么?如何计算的?

1.区分FLOPs和FLOPS

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

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

注意在深度学习中,我们用的是FLOPs,也就是说计算量,即用来衡量算法/模型的复杂度。

2、FLOPS的计算

(1)卷积操作

input:(H,W,Ci
kernel size:(k,k,Co

step=1

一张特征图一次卷积操作的计算量:

  • 一次kernel操作:(k2 ×Ci)+(k2 ×Ci -1)=2k2 Ci -1
    前面的括号是乘法计算,后面的括号中是加法计算,该计算假设卷积操作只有权重没有bias项。

  • 整个feature map的卷积计算量:(2k2 Ci -1 )×Co×H×W

(2)全连接操作

全连接层的维度:输入I;输出N

计算量:
[ I + ( I - 1) ] × N=(2I-1)N (该计算也没有考虑bias)

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐