FLOPs 的定义
不要把 FLOPS 和 FLOPs 搞混,FLOPS是硬件的计算速度单位,本质是一个速度单位。而 FLOPs 是一个数量单位,描述的是神经网络的计算量。
需要注意的是 FLOPs 不区分运算精度,它单纯的统计乘法和加法的次数。而且只包含测试阶段的运算量,不包含训练过程中的反响传播计算量。
FLOPs 的计算思路
- 第一步:计算单个 Filter 单次的计算量 = Filter_x * Filter_y * Filter_channels * Filtter_num
- 第二步:计算每个 Filter 在 Input 上运算多少次,这个就是 Layer 的输出大小
- 第三步:将前两步的结果相乘
举例:计算VGG19的 FLOPs

举例:计算 ResNet34 的 FLOPs

这里的运算结果和论文中的提到结果一致

参考文献:
https://arxiv.org/abs/1512.03385
版权声明:本文为billll原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。