敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024
词汇表

FLOPs (每秒浮点运算次数)

了解机器学习中的 FLOPs!了解它如何衡量模型复杂性、影响效率并帮助硬件选择。

FLOPs(浮点运算次数)是机器学习 (ML)中用于衡量模型计算复杂度的基本指标。浮点运算是任何涉及带小数点的数字的数学计算,如加法、减法、乘法或除法,这些在神经网络中很常见。虽然该术语在技术上可以指每秒运算次数,但在深度学习的上下文中,FLOPs 通常量化模型单次前向传播所需的这些运算的总数。该指标提供了一种与硬件无关的方式来估计模型在推理期间的计算密集程度。这些数字通常非常大,以至于用 GigaFLOPs(GFLOPs,数十亿次运算)或 TeraFLOPs(TFLOPs,数万亿次运算)来表示。

为什么 FLOP 在机器学习中如此重要?

FLOPs 是衡量模型效率的关键指标。较低的 FLOPs 通常意味着模型运行速度更快,所需的计算能力更少。这对于资源有限的应用(如边缘 AI 和移动设备)尤其重要。通过分析 FLOPs,开发人员可以:

  • 比较模型架构:在不同的模型之间进行选择时,例如在我们的模型比较页面中找到的模型,FLOPs 提供了一种标准化的方法来评估计算效率以及准确率
  • 优化部署:对于在 Raspberry PiNVIDIA Jetson 等硬件上进行模型部署,选择具有适当 FLOP 计数的模型对于实现所需的性能水平至关重要。
  • 指导模型设计: 开发新架构的研究人员(例如 Ultralytics YOLO 系列中的研究人员)通常将最小化 FLOP 作为关键设计约束。在 EfficientNet 等模型中探索的技术侧重于降低计算成本而不牺牲性能。

实际应用

FLOPs 是在 AI 解决方案的开发和部署中每天使用的实用指标。

  1. 移动视觉应用: 开发人员为智能手机应用程序创建实时对象检测功能时,必须选择一个能够快速运行而不会耗尽电池电量的模型。通过比较小型 Ultralytics YOLO11 变体与其他模型的 FLOPs,他们可以选择一个在设备 CPUGPU 的速度和准确性之间提供良好平衡的模型。

  2. 自动驾驶汽车:在自动驾驶中,感知模型必须以极低的延迟处理摄像头数据流。设计这些系统的工程师会分析各种模型的 FLOPs,以确保所选架构可以在车辆的专用硬件上运行。如果 YOLO11 等模型的较低 FLOPs 使其能够满足安全运行的严格时序要求,则可能会选择它而不是更复杂的模型。

FLOPs vs. 相关指标

区分 FLOPs 和其他常用指标非常重要:

  • 参数 vs. FLOPs模型权重(参数)的数量表示模型在内存存储方面的尺寸。另一方面,FLOPs 衡量的是计算工作量。如果模型中的参数在计算密集型操作中被多次重复使用,那么即使参数数量很少,FLOPs 计数也可能很高。
  • MACs vs. FLOPs:MACs,或乘-累加运算,是神经网络中的常见运算。单个 MAC 通常被认为等同于两个 FLOPs(一次乘法和一次加法)。一些研究论文和框架可能会报告 MACs 中的计算成本,这大约是 FLOPs 值的一半。您可以在Papers with Code之类的资源中看到这种区别。
  • 延迟与FLOPs: 推理延迟是模型做出预测所花费的实际挂钟时间。虽然FLOPs提供了一个很好的理论估计,但实际延迟受到FLOPs无法捕获的因素的影响,例如内存带宽、硬件并行性和PyTorch等软件库的效率。

局限性

虽然 FLOPs 很有用,但它也有局限性:

  • 它们没有考虑内存访问成本,而这可能是一个重要的瓶颈。
  • 它们没有捕捉到操作中可能存在的并行度。
  • 实际性能在很大程度上取决于特定于硬件的优化和底层软件库(cuDNNIntel MKL)的效率。
  • 某些操作(例如,ReLU 等激活函数)的 FLOPs 计数较低,但仍然会影响延迟。

因此,在全面评估模型效率时,应将 FLOPs 与其他性能指标、参数和实际基准结合考虑。诸如 Ultralytics HUB 等工具可以帮助管理模型,并在开发和部署期间跟踪各种性能方面。

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入
链接已复制到剪贴板