什么是深度学习领域的FLOPS?



什么是深度学习领域的FLOPS?为什么我们不只使用FLO这个词?

我们使用术语FLOPS来衡量冻结的深度学习网络的操作次数。

按照维基百科,FLOPS = 每秒浮点运算。当我们测试计算单元时,我们应该考虑时间。但是在测量深度学习网络的情况下,我如何理解这个时间概念呢?我们不应该只使用术语 FLO(浮点运算(吗?

为什么人们使用FLOPS一词?如果有什么我不知道的,那是什么?

==== 附件 ===

我提到的冻结深度学习网络只是一种软件。这与硬件无关。在深度学习领域,人们使用术语FLOPS来衡量运行网络模型需要多少操作。在这种情况下,在我看来,我们应该使用术语 FLO。我认为人们对FLOPS一词感到困惑,我想知道其他人是否也有同样的想法,或者我是否错了。

请看这些案例:

如何在CNN中计算网络的FLOP

https://iq.opengenus.org/floating-point-operations-per-second-flops-of-machine-learning-models/

令人困惑的是,FLOP(浮点运算(和 FLOPS(每秒浮点运算(都用于指代机器学习。FLOP 通常用于描述运行给定模型(如 VGG19(的单个实例所需的操作数。这是您发布的两个链接中FLOP的用法,尽管不幸的是,opengenus链接错误地使用"每秒浮点运算数"来指代FLOP。

您将看到 FLOPS 用于描述给定硬件(如 GPU(的计算能力,这在考虑给定硬件的强大程度时很有用,或者相反,在该硬件上训练模型可能需要多长时间。

有时人们在说FLOP时会写FLOPS。通常从上下文中可以清楚地看出它们指的是哪一个。

我不确定我的答案是否 100% 正确。 但这是我的理解。

  • FLOPS =s经济的流点操作

  • FLOPs =Floating pointops

FLOPS是速度的单位。FLOP 是一个金额单位。

深度学习

领域的FLOPS是什么?为什么我们不只使用FLO这个词?

FLOPS(每秒浮点运算数(在大多数领域中都是相同的 - 它是硬件可能(如果你非常幸运的话(能够做到的(理论上(最大浮点运算数。

我们不使用 FLO,因为 FLO 总是无穷大的(给定无限的时间硬件能够执行无限数量的浮点运算(。

请注意,一个"浮点运算"是一个乘法,一个除法,一个加法,...通常(对于现代 CPU(FLOPS 是通过重复使用"融合乘法然后加法"指令来计算的,因此一条指令计为 2 次浮点运算。与 SIMD 结合使用时,一条指令(并行执行 8 条"多重加法"(可能算作 16 条浮点指令。当然,这是一个计算的理论值,因此您可以忽略内存访问,分支,IRQ等内容。这就是为什么"理论 FLOP"在实践中几乎永远无法实现的原因。

为什么人们使用FLOPS一词?如果有什么我不知道的,那是什么?

它主要用于描述用于营销目的的硬件有多强大(例如,"我们的新 CPU 能够达到 5 GFLOPS!

相关内容

  • 没有找到相关文章

最新更新