3.6 使用Ultralytics YOLO进行模型基准测试

3.6 使用Ultralytics YOLO进行模型基准测试

Ultralytics YOLO生态系统及其集成

引言

当您的模型完成训练和验证后,下一步就是评估其在各种现实场景中的表现。Ultralytics YOLO11的基准测试模式通过提供一个强大的框架,用于评估模型在各种导出格式下的速度和准确性。

观看视频:Ultralytics模式教程:基准测试

为什么基准测试至关重要?

  • 明智决策:了解速度与准确性之间的权衡。

  • 资源分配:了解不同导出格式在不同硬件上的表现。

  • 优化:找出哪个导出格式在特定用例中提供最佳性能。

  • 成本效益:基于基准测试结果更高效地利用硬件资源。

基准测试模式中的关键指标

  • mAP50-95:用于对象检测、分割和姿态估计。

  • accuracy_top5:用于图像分类。

  • 推断时间:每张图片的处理时间,以毫秒为单位。

支持的导出格式

  • ONNX:用于最佳的CPU性能。

  • TensorRT:用于最大化GPU效率。

  • OpenVINO:用于英特尔硬件优化。

  • CoreML、TensorFlow SavedModel等:用于多样化的部署需求。

提示

  • 导出为ONNX或OpenVINO格式,可获得高达3倍的CPU加速。

  • 导出为TensorRT格式,可获得高达5倍的GPU加速。

使用示例

对所有支持的导出格式(如ONNX、TensorRT等)运行YOLO11n基准测试。请参阅下方的参数部分,了解完整的导出参数列表。

示例代码

Python代码

from ultralytics.utils.benchmarks import benchmark

# 在GPU上进行基准测试
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

参数说明

诸如 modeldataimgszhalfdeviceverbose 等参数为用户提供了灵活性,可以轻松微调基准测试并比较不同导出格式的性能。

参数名默认值描述
modelNone指定模型文件路径。接受 .pt.yaml 格式,例如 "yolo11n.pt" 表示预训练模型或配置文件。
dataNone定义用于基准测试的数据集的YAML文件路径,通常包括验证数据的路径和设置。例如:"coco8.yaml"。
imgsz640模型的输入图像大小,可以是单个整数(方形图像)或元组(宽度,高度),例如 (640, 480)。
halfFalse启用FP16(半精度)推断,减少内存使用并可能在兼容硬件上提高速度。使用 half=True 启用。
int8False激活INT8量化,在支持的设备上进一步优化性能,特别适用于边缘设备。设置 int8=True 使用。
deviceNone定义基准测试的计算设备,例如 "cpu"、"cuda:0",或 "cuda:0,1" 用于多GPU设置。
verboseFalse控制日志输出的详细程度。布尔值,设置 verbose=True 显示详细日志,或设置浮点值以阈值错误。

导出格式

基准测试将自动尝试运行以下所有可能的导出格式。

格式format 参数模型元数据适用参数
PyTorch-yolo11n.pt-
TorchScripttorchscriptyolo11n.torchscriptimgsz, optimize, batch
ONNXonnxyolo11n.onnximgsz, half, dynamic, simplify, opset, batch
OpenVINOopenvinoyolo11n_openvino_model/imgsz, half, int8, batch
TensorRTengineyolo11n.engineimgsz, half, dynamic, simplify, workspace, int8, batch
CoreMLcoremlyolo11n.mlpackageimgsz, half, int8, nms, batch
TF SavedModelsaved_modelyolo11n_saved_model/imgsz, keras, int8, batch
TF GraphDefpbyolo11n.pbimgsz, batch
TF Litetfliteyolo11n.tfliteimgsz, half, int8, batch
TF Edge TPUedgetpuyolo11n_edgetpu.tfliteimgsz
TF.jstfjsyolo11n_web_model/imgsz, half, int8, batch
PaddlePaddlepaddleyolo11n_paddle_model/imgsz, batch
NCNNncnnyolo11n_ncnn_model/imgsz, half, batch

常见问题解答

1. 如何使用Ultralytics对YOLO11模型的性能进行基准测试?

Ultralytics YOLO11提供基准测试模式,以评估模型在不同导出格式下的性能。该模式提供了对关键指标的洞察,如平均精度(mAP50-95)、准确性和每张图片的推断时间(毫秒)。要运行基准测试,可以使用Python或CLI命令。例如,在GPU上进行基准测试:

Python代码示例

from ultralytics.utils.benchmarks import benchmark

# 在GPU上进行基准测试
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

2. 将YOLO11模型导出为不同格式的好处是什么?

将YOLO11模型导出为不同格式(如ONNX、TensorRT、OpenVINO)可以根据您的部署环境优化性能。例如:

  • ONNX:可获得高达3倍的CPU加速。

  • TensorRT:可获得高达5倍的GPU加速。

  • OpenVINO:特别优化用于英特尔硬件。这些格式可增强模型的速度和准确性,使其在各种现实应用中更高效。更多详情请访问导出页面。

3. 为什么基准测试对评估YOLO11模型至关重要?

对YOLO11模型进行基准测试有以下几个原因:

  • 明智决策:了解速度和准确性之间的权衡。

  • 资源分配:衡量在不同硬件上的性能。

  • 优化:确定哪个导出格式在特定用例中提供最佳性能。

  • 成本效益:基于基准测试结果优化硬件使用。关键指标如mAP50-95、Top-5准确率和推断时间有助于进行这些评估。更多信息请参阅关键指标部分。

4. YOLO11支持哪些导出格式,它们的优点是什么?

YOLO11支持多种导出格式,每种格式都针对特定硬件和使用场景:

  • ONNX:适用于CPU性能最佳。

  • TensorRT:适用于GPU效率最佳。

  • OpenVINO:针对英特尔硬件优化。

  • CoreML & TensorFlow:适用于iOS和一般的ML应用。有关支持格式及其优点的完整列表,请查看支持的导出格式部分。

5. 我可以使用哪些参数来微调YOLO11基准测试?

在运行基准测试时,可以自定义多个参数以满足特定需求:

  • model:模型文件路径(如 "yolo11n.pt")。

  • data:定义数据集的YAML文件路径(如 "coco8.yaml")。

  • imgsz:输入图像大小,可以是单个整数或元组。

  • half:启用FP16推断以提高性能。

  • int8:激活INT8量化以优化边缘设备。

  • device:指定计算设备(如 "cpu"、"cuda:0")。

  • verbose:控制日志详细程度。有关完整参数列表,请参阅参数部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值