FLOPS 的含义和计算方法
最编程
2024-03-13 08:19:36
...
1. 深度学习框架FLOPs的概念
Floating point operations
即:浮点运算数量
Paper里比较流行的单位是GFLOPs
1 GFLOPs = 10^9 FLOPs
即:10亿次浮点运算
2. 深度学习框架FLOPs的组成
1. 卷积运算Conv
用以下动图中直观的解释:
Image大小为 5x5
卷积核大小为 3x3
那么一次3x3的卷积(求右图矩阵一个元素的值)所需运算量:(3x3)个乘法+(3x3-1)个加法 = 17
要得到右图convolved feature (3x3的大小):17x9 = 153
2. BatchNorm
3. ReLu
4. Linear
5. Upsample
6. Poolings
其中,Conv所占的比重通常是最大的
此外,它和输入图像的大小也有关系
而#Parameters和图像大小无关
3. 计算FLOPs的代码或包
因为无人驾驶车载板子对模型复杂度有要求
今天在Github上找了一下午代码(基于Pytorch)
终于找到一个既傻瓜又好用的!!!
示例代码(以VGG16为例):
可以看到
算上import 和 print()也仅仅6行代码!
不仅输出了整个框架的复杂度
Flops: 15.5 x 10^9 次浮点运算 Params: 138.36 百万个参数
4. 常用框架的复杂度
上一篇: QT 5 + Linux qt 软件点击运行 .sh 脚本 + Dconf 编辑器 + 学习他人的文章 + 额外:点击脚本运行软件] - 实验步骤
下一篇: 可分离高斯神经网络:结构、分析和函数逼近
推荐阅读