了解机器学习中的 FLOPs!了解它如何衡量模型复杂性、影响效率并帮助硬件选择。
FLOPs(浮点运算次数)是机器学习 (ML)中用于衡量模型计算复杂度的基本指标。浮点运算是任何涉及带小数点的数字的数学计算,如加法、减法、乘法或除法,这些在神经网络中很常见。虽然该术语在技术上可以指每秒运算次数,但在深度学习的上下文中,FLOPs 通常量化模型单次前向传播所需的这些运算的总数。该指标提供了一种与硬件无关的方式来估计模型在推理期间的计算密集程度。这些数字通常非常大,以至于用 GigaFLOPs(GFLOPs,数十亿次运算)或 TeraFLOPs(TFLOPs,数万亿次运算)来表示。
FLOPs 是衡量模型效率的关键指标。较低的 FLOPs 通常意味着模型运行速度更快,所需的计算能力更少。这对于资源有限的应用(如边缘 AI 和移动设备)尤其重要。通过分析 FLOPs,开发人员可以:
FLOPs 是在 AI 解决方案的开发和部署中每天使用的实用指标。
移动视觉应用: 开发人员为智能手机应用程序创建实时对象检测功能时,必须选择一个能够快速运行而不会耗尽电池电量的模型。通过比较小型 Ultralytics YOLO11 变体与其他模型的 FLOPs,他们可以选择一个在设备 CPU 或 GPU 的速度和准确性之间提供良好平衡的模型。
自动驾驶汽车:在自动驾驶中,感知模型必须以极低的延迟处理摄像头数据流。设计这些系统的工程师会分析各种模型的 FLOPs,以确保所选架构可以在车辆的专用硬件上运行。如果 YOLO11 等模型的较低 FLOPs 使其能够满足安全运行的严格时序要求,则可能会选择它而不是更复杂的模型。
区分 FLOPs 和其他常用指标非常重要:
虽然 FLOPs 很有用,但它也有局限性:
因此,在全面评估模型效率时,应将 FLOPs 与其他性能指标、参数和实际基准结合考虑。诸如 Ultralytics HUB 等工具可以帮助管理模型,并在开发和部署期间跟踪各种性能方面。