如何计算乘加运算?

Dat*_*yen 7 deep-learning conv-neural-network tensorflow

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

该术语被引入MobileNetV2论文:https : //arxiv.org/pdf/1801.04381​​.pdf

我们评估了准确性和乘加法(MAdd)测量的操作数量以及实际延迟和参数数量之间的权衡。

BiB*_*iBi 6

计算Multiply-Add操作相当于计算模型的 FLOP。这可以使用 tensorflow 的分析器来实现。

flops = tf.profiler.profile(graph,\
     options=tf.profiler.ProfileOptionBuilder.float_operation())
print('FLOP = ', flops.total_float_ops)
Run Code Online (Sandbox Code Playgroud)

请务必查看此答案中解释的警告。基本上:

  • 计算的 FLOP 数量可能包括初始化操作,例如使用高斯分布初始化权重的乘法加法,例如,您需要冻结图以规则那些可能不相关的乘法加法运算,
  • TensorFlow 的乘加计算是近似的。此处已针对此事打开了一个问题。


Rya*_*an 0

我不确定某个功能,但这个网站应该可以帮助您跟踪 MulAdd 操作,唯一需要注意的是您可能需要 prototxt 文件,但对于流行的架构,MulAdd 操作已经列出

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

希望能帮助到你。