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

FLOPs (每秒浮点运算次数)

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

浮点运算(FLOPs)是衡量机器学习模型计算复杂度的标准指标。它具体统计神经网络处理单个输入(如图像或句子)时必须执行的数学运算次数——主要涉及十进制数的加法和乘法运算。 在深度学习领域,FLOPs作为理论标尺,用于评估模型的"计算负荷"或计算成本。较高的FLOPs值通常表明模型结构更复杂,执行时需要更强的处理能力和能量消耗;而较低的FLOPs值则意味着模型采用轻量级架构,更注重效率优化。

FLOPs在模型选择中的作用

开发人工智能应用时,工程师常需在准确性和速度之间权衡取舍。浮点运算性能(FLOPs)作为推断延迟的硬件无关替代指标,使开发者无需在所有可能设备上进行基准测试即可比较不同架构。该指标对于选择适合特定部署场景的模型至关重要。 例如,在高性能云计算服务器上进行实验的研究人员可能优先考虑精度而非效率,因此会选用高FLOPs的模型。相反,为边缘AI设备开发应用的工程师则必须优先选择低FLOPs方案,以确保应用在严格的功耗和散热限制内流畅运行。

实际应用

FLOPs的实际意义在计算资源至关重要的各个行业中显而易见。

  • 自主无人机:农业机器人等领域, 搭载摄像头的无人机可实时分析作物健康状况。 由于无人机电池续航有限,每分每秒的能耗都至关重要。 工程师专门选用低浮点运算性能(FLOPs)的模型, 例如YOLO26的Nano变体, 以最大限度降低机载处理器的功耗, 从而延长飞行时间并扩大作业范围。
  • 移动增强现实:采用面部识别技术保障安全或应用AR滤镜的智能手机应用,其运行高度依赖高效处理能力。这些应用必须确保设备在不出现过热或卡顿的情况下正常运作。开发者通过浮点运算性能(FLOPs)评估来筛选轻量级模型,使其能够顺畅适配骁龙系列苹果A系列芯片等移动芯片组的性能范围。

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

区分"FLOPs"(FLOP的复数形式)与"FLOPS"(全大写形式)至关重要。虽然它们 看起来几乎相同,但衡量的是不同概念。FLOPs(小写's')指模型所需的总运算量—— 这是对复杂度的静态衡量。 FLOPS(大写'S')代表每秒浮点运算次数,用于衡量硬件的速度或性能能力,例如 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")

降低浮点运算次数以提升效率

为提升模型部署能力,研究人员采用多种技术在不显著牺牲精度的前提下降低浮点运算量。模型剪枝通过移除神经网络中次要连接实现结构精简。 另一种技术是量化,通过降低计算中使用的数字精度(例如从32位浮点数降至8位整数)来实现。Ultralytics 提供的工具可简化这些优化流程,使高效模型更易部署至目标平台,例如 TensorRTOpenVINO。通过理解并优化浮点运算性能,开发者能够构建兼具强大性能与可持续性的AI系统。

加入Ultralytics 社区

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

立即加入