什么是深度学习领域的 FLOPS?为什么我们不只使用 FLO 一词?
我们使用术语 FLOPS 来衡量冻结的深度学习网络的操作次数。
按照维基百科,FLOPS = 每秒浮点运算。当我们测试计算单元时,我们应该考虑时间。但是在测量深度学习网络的情况下,我如何理解这个时间概念?我们不应该只使用 FLO(浮点运算)这个术语吗?
为什么人们使用术语 FLOPS?如果有什么我不知道的,那是什么?
====附件===
我提到的冻结深度学习网络只是一种软件。这与硬件无关。在深度学习领域,人们使用术语 FLOPS 来衡量运行网络模型需要多少次操作。在这种情况下,在我看来,我们应该使用 FLO 一词。我认为人们对 FLOPS 一词感到困惑,我想知道其他人是否有同样的想法,或者我是否错了。
请看这些案例:
https://iq.opengenus.org/floating-point-operations-per-second-flops-of-machine-learning-models/
最近我一直在对一些CNN进行基准测试,包括时间,乘加操作数(MAC),参数数量和模型大小.我已经看到了一些类似的SO问题(这里和这里),在后者中,他们建议使用Netscope CNN Analyzer.这个工具允许我通过输入我的Caffe网络定义来计算我需要的大部分东西.
然而,我在论文和互联网上看到的一些架构的乘加操作的数量与Netscope输出的不匹配,而其他架构匹配.我总是将FLOP或MAC与netscope中的MACC列进行比较,但是在某些时候我忘记了一个~10倍的因素(查看下表以获取更多细节).
Architecture ---- MAC (paper/internet) ---- macc column in netscope
VGG 16 ~15.5G ~157G
GoogLeNet ~1.55G ~16G
Run Code Online (Sandbox Code Playgroud)
在Netscope中引用GoogLeNet macc编号和VGG16 macc编号.
是否有人使用该工具可以指出我在阅读Netscope输出时我正在做的错误?
我在tensorflow教程中已经看到,它们提供了有关不同体系结构的一些有趣统计信息,例如发生的操作数等。
该模型在GPU上的几个小时的训练时间内即可达到约86%的准确性。请参阅下面的代码以获取详细信息。它包含1,068,298个可学习的参数,并且需要大约19.5M的乘法加法运算才能计算单个图像上的推论。
如何使用Caffe达到类似目的?
我自己该如何计算或编译这些有趣的统计数据?
(顺便说一句,我不是在谈论张量板可视化,只是统计信息,例如操作数量和类似的东西)