了解机器学习中的 FLOPs!了解它如何衡量模型复杂性、影响效率并帮助硬件选择。
FLOP,即浮点运算,是量化机器学习模型计算复杂度的基本指标。 机器学习模型计算复杂度的基本指标,特别是在 深度学习领域。该指标计算的是数学运算的总数,如涉及十进制数的加法、减法、乘法和除法、 十进制数的加减乘除等数学运算的总数。 神经网络所需的数学运算总数。通过确定 FLOPs 数、 工程师就能估算出执行一个模型所需的处理能力,从而使其成为硬件选择和优化的一个重要统计指标。 选择和优化的重要数据。虽然 FLOPs 有别于文件大小或参数数量,但它提供了一个理论基线,以确定 模型有多 "重",这直接关系到能耗和在处理器上的执行速度。 如 CPU或 GPU.
了解模型的计算成本对于高效的 人工智能开发至关重要。FLOPs 通常表示模型生成预测所需的计算量较少,这对于资源有限的环境至关重要。 这对于资源有限的环境至关重要。
当模型从研究转向生产环境时,FLOP 的实际影响最为明显,因为在生产环境中,延迟和功耗都受到限制。 和功率受到限制时,FLOP 的实际影响最为明显。
您可以使用内置的分析工具确定Ultralytics 模型的计算复杂度。下面的 下面的代码段加载了一个模型,并计算了特定输入大小所需的 FLOP。
from ultralytics import YOLO
# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")
# Profile the model to see FLOPs, parameters, and speed
# The 'imgsz' argument defines the input resolution (e.g., 640x640)
model.profile(imgsz=640)
该方法会输出一个汇总表,包括参数数、梯度和 GFLOPs(GigaFLOPs,或 亿次运算),帮助您评估模型是否符合您的 部署限制。
必须将 FLOPs 与其他描述模型大小和速度的指标区分开来,因为它们衡量的是性能的不同方面。 性能的不同方面。
虽然 FLOPs 提供了一个有用的基线,但并不能说明模型性能的全部。它们没有考虑 内存访问成本(将数据移动到处理器所需的能量和时间),而这往往是现代 深度学习系统的瓶颈。此外,像激活函数 激活函数(如ReLU) 或归一化层等操作的 FLOP 数较低,但仍会消耗时间。因此,FLOP 应与目标系统的实际基准测试结合使用。 与目标硬件(如 Raspberry Pi)上的实际基准测试结合使用。 树莓派(Raspberry Pi)等目标硬件上的实际基准测试,以准确了解其 性能。

