如何计算乘加运算?

时间:2018-06-28 07:43:34

标签: tensorflow deep-learning conv-neural-network

给定一个定义的卷积神经网络,是否有一种函数或方法来计算Multiply-Adds操作数?

该术语是在MobileNetV2论文:https://arxiv.org/pdf/1801.04381.pdf中引入的。

  

我们评估准确性和操作次数之间的权衡   通过乘积(MAdd)以及实际延迟进行测量,   参数数量。

2 个答案:

答案 0 :(得分:3)

计算Multiply-Add操作等效于计算模型的FLOP。这可以使用来自tensorflow的事件探查器来实现。

flops = tf.profiler.profile(graph,\
     options=tf.profiler.ProfileOptionBuilder.float_operation())
print('FLOP = ', flops.total_float_ops)

请务必查看this answer中解释的警告。基本上:

  • 计算出的FLOP数量可能包括诸如乘加运算之类的初始化操作,例如,通过使用高斯分布初始化权重,您需要冻结图形以裁定那些可能不相关的乘加运算,
  • TensorFlow的乘加运算是近似的。有关此问题here的问题已经解决。

答案 1 :(得分:0)

我不确定功能,但是该网站应该帮助您跟踪MulAdd操作。唯一的警告是您可能需要prototxt文件,但是对于流行的体系结构,MulAdd操作已经列出

-https://dgschwend.github.io/netscope/quickstart.html

希望有帮助。