机器学习笔记:FLOPs
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习笔记:FLOPs相关的知识,希望对你有一定的参考价值。
1 FLOPS与FLOPs
FLOPS:floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。
FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。
2 卷积的FLOPs
结论:卷积层的计算能力(FLOPs)等于上图中两个立方体(绿色和橙色)体积的乘积(V1*V2)
卷积层 wx + b 需要计算两部分
1)首先考虑前半部分 wx 的计算量:
令 :
- k 表示卷积核大小;
- c 表示输入 的channel的数量
那么对于输出的一个单元格来说,他需要进行k*k*c次乘法。每个惩罚结果相加,得到一个数值,这个就是加法的数量,k*k*c-1次
那么一共有H*W(输出每一个channel的长度和宽度),输出有o个channel,那么输出的单元格总数为H*W*o
所以,计算wx的时候,需要
k*k*c*H*W*o次乘法和(k*k*c-1)*H*W*o次加法
2)在考虑偏差项b包含的计算量
输出的每一个单元格上做一个加法操作,所以,计算偏差项的时候需要
H*W*o次加法
所以综合考虑,我们需要
k*k*c*H*W*o次加法和k*k*c*H*W*o次乘法
令一次加法和一次乘法表示一个FLOP,那么这个卷积层的FLOPs为k*k*c*H*W*o
以上是关于机器学习笔记:FLOPs的主要内容,如果未能解决你的问题,请参考以下文章