深圳Yolo 视觉
深圳
立即加入
词汇表

FLOPs (每秒浮点运算次数)

了解FLOPs 如何衡量AI模型的计算复杂度。探索如何计算 Ultralytics YOLO26 的 FLOPs 并优化边缘AI的性能。

FLOPs,即浮点运算,是衡量机器学习模型计算复杂度的标准指标。它专门计算神经网络处理单个输入(例如图像或句子)所需的数学运算次数——主要是涉及小数的加法和乘法。在深度学习领域,FLOPs是衡量模型“重量”或计算开销的理论标准。通常,较高的FLOPs计数表明模型更复杂,需要更多的处理能力和能源来执行;而较低的计数则表示为效率而设计的轻量级架构。

FLOPs 在模型选择中的作用

在开发 人工智能 应用程序时,工程师经常面临精度和速度之间的权衡。FLOPs 作为 推理延迟 的硬件无关代理,允许开发者比较不同的架构,而无需在每种可能的设备上进行基准测试。此指标对于为特定部署场景选择合适的模型至关重要。例如,在强大的 云计算 服务器上进行实验的研究人员可能会优先考虑精度而非效率,使用高 FLOPs 的模型。相反,为 边缘AI 设备构建的工程师必须优先考虑低 FLOPs,以确保应用程序在严格的功耗和散热限制内平稳运行。

实际应用

FLOPs 的实际意义在计算资源是关键因素的各个行业中都显而易见。

  • 自动无人机:农业机器人等领域,配备摄像头的无人机实时分析作物健康状况。由于无人机电池有限,每一瓦功耗都很重要。工程师专门选择低FLOPs的模型,例如YOLO26的Nano变体,以最大限度地减少对板载处理器的消耗,从而最大化飞行时间和操作范围。
  • 移动增强现实: 使用 人脸识别 进行安全验证或应用AR滤镜的智能手机应用程序严重依赖高效处理。这些应用程序必须在不导致设备过热或卡顿的情况下运行。开发者利用FLOPs估算来选择轻量级模型,使其能够轻松适应 Snapdragon 系列或苹果 A系列芯片 等移动芯片组的功能。

FLOPs vs. FLOPS(每秒浮点运算次数)

区分“FLOPs”(FLOP的复数)和“FLOPS”(全大写)至关重要。尽管它们看起来几乎相同,但衡量的是不同的事物。FLOPs(小写's')指的是模型所需的总操作数量——它是复杂度的静态衡量标准。FLOPS(大写'S')代表每秒浮点运算次数(Floating Point Operations Per Second),衡量的是硬件(例如GPU)的速度或性能能力。可以将FLOPs视为汽车需要行驶的距离(需要完成的工作量),而FLOPS则是汽车的最高速度(硬件完成工作的能力)。

使用Python测量浮点运算次数

您可以使用 Python 轻松计算 Ultralytics 模型的计算成本。这在 模型优化 阶段特别有用,以确保您的神经网络符合硬件预算。以下示例演示了如何加载 YOLO26 模型并确定其 FLOPs。

from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops

# Load a lightweight YOLO26 model
model = YOLO("yolo26n.pt")

# Calculate and print the model's FLOPs (Billions of operations)
# This gives you a hardware-independent complexity metric
flops = get_flops(model)
print(f"Model FLOPs: {flops:.2f} Billion")

减少 FLOPs 以提高效率

为了使模型更易于部署,研究人员使用多种技术来减少 FLOPs,而不会显著牺牲准确性。模型剪枝 涉及移除神经网络中不那么重要的连接,有效地进行“瘦身”。另一种技术是 量化,它降低了计算中使用的数字精度(例如,从 32 位浮点数到 8 位整数)。Ultralytics Platform 上提供的工具帮助简化这些优化过程,使将高效模型部署到 TensorRTOpenVINO 等目标变得更容易。通过理解和优化 FLOPs,开发人员可以构建既强大又可持续的 AI 系统。

让我们一起共建AI的未来!

开启您的机器学习未来之旅