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