Ultralytics YOLO 模型基准测试

介绍
一旦您的模型完成训练和验证,下一步自然是在各种实际场景中评估其性能。Ultralytics YOLO11 中的基准模式通过提供一个强大的框架来评估模型在不同导出格式下的速度和准确性,从而服务于这一目的。
观看: Ultralytics 模式教程: 基准测试
为什么基准测试至关重要?
- 明智决策: 了解速度和准确性之间的权衡。
- 资源分配: 理解不同导出格式在不同硬件上的表现。
- 优化: 了解哪种导出格式为您的特定用例提供最佳性能。
- 成本效益: 根据基准测试结果更高效地利用硬件资源。
基准模式中的关键指标
支持的导出格式
- ONNX: 用于最佳CPU性能
- TensorRT: 用于最大GPU效率
- OpenVINO: 用于Intel硬件优化
- CoreML, TensorFlow SavedModel 等: 用于多样化的部署需求。
Tip
- 导出到ONNX或OpenVINO以获得高达3倍的CPU加速。
- 导出到TensorRT以获得高达5倍的GPU加速。
使用示例
在所有支持的导出格式(包括ONNX、TensorRT等)上运行YOLO11n基准测试。请参阅下面的参数部分,了解完整的导出参数列表。
Example
参数
诸如 model, data, imgsz, half, device, 和 verbose 等参数为用户提供了灵活性,可以根据特定需求微调基准测试,并轻松比较不同导出格式的性能。
| 键 | 默认值 | 描述 |
|---|---|---|
model |
None |
指定模型文件的路径。接受 .pt 和 .yaml 格式,例如 "yolo11n.pt" 用于预训练模型或配置文件。 |
data |
None |
指向定义基准测试数据集的YAML文件的路径,通常包括验证数据的路径和设置。示例: "coco8.yaml"。 |
imgsz |
640 |
模型的输入图像大小。可以是方形图像的单个整数,也可以是非方形图像的元组 (宽度, 高度),例如 (640, 480)。 |
half |
False |
启用FP16(半精度)推理,减少内存使用并在兼容硬件上可能提高速度。使用 half=True 启用。 |
int8 |
False |
激活INT8量化以进一步优化支持设备上的性能,特别适用于边缘设备。设置 int8=True 以使用。 |
device |
None |
定义用于基准测试的计算设备,如 "cpu"、"cuda:0",或用于多GPU设置的设备列表,如 "cuda:0,1"。 |
verbose |
False |
控制日志输出的详细程度。布尔值;设置 verbose=True 以获取详细日志,或设置为浮点数以进行错误阈值处理。 |
导出格式
基准测试将尝试自动运行以下所有可能的导出格式。
| 格式 | format 参数 |
模型 | 元数据 | 参数 |
|---|---|---|---|---|
| PyTorch | - | yolo11n.pt |
✅ | - |
| TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz, optimize, batch |
| ONNX | onnx |
yolo11n.onnx |
✅ | imgsz, half, dynamic, simplify, opset, batch |
| OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz, half, int8, batch |
| TensorRT | engine |
yolo11n.engine |
✅ | imgsz, half, dynamic, simplify, workspace, int8, batch |
| CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz, half, int8, nms, batch |
| TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz, keras, int8, batch |
| TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz, batch |
| TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz, half, int8, batch |
| TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz |
| TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz, half, int8, batch |
| PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz, batch |
| NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz, half, batch |
有关 export 的完整详细信息,请参阅 Export 页面。
常见问题
如何使用 Ultralytics 对我的 YOLO11 模型进行性能基准测试?
Ultralytics YOLO11 提供了一个基准测试模式,用于评估您的模型在不同导出格式下的性能。此模式提供了关键指标的洞察,如 平均精度均值 (mAP50-95)、准确率和毫秒级的推理时间。要运行基准测试,您可以使用 Python 或 CLI 命令。例如,要在 GPU 上进行基准测试:
Example
有关基准测试参数的更多详细信息,请访问 Arguments 部分。
将 YOLO11 模型导出为不同格式的优势是什么?
将 YOLO11 模型导出为不同格式,如 ONNX、TensorRT 和 OpenVINO,使您能够根据部署环境优化性能。例如:
- ONNX: 提供高达 3 倍的 CPU 加速。
- TensorRT: 提供高达 5 倍的 GPU 加速。
- OpenVINO: 专门针对 Intel 硬件进行优化。 这些格式提高了模型的速度和准确性,使其在各种实际应用中更加高效。访问 Export 页面以获取完整详细信息。
为什么基准测试在评估 YOLO11 模型时至关重要?
对 YOLO11 模型进行基准测试至关重要,原因如下:
- 明智决策: 了解速度和准确性之间的权衡。
- 资源分配: 评估不同硬件选项的性能。
- 优化: 确定哪种导出格式为特定用例提供最佳性能。
- 成本效益: 根据基准测试结果优化硬件使用。 关键指标如 mAP50-95、Top-5 准确率和推理时间有助于进行这些评估。请参阅 Key Metrics 部分以获取更多信息。
YOLO11 支持哪些导出格式,它们的优势是什么?
YOLO11 支持多种导出格式,每种格式都针对特定硬件和用例进行了优化:
- ONNX: 最适合 CPU 性能。
- TensorRT: 理想用于 GPU 效率。
- OpenVINO: 针对 Intel 硬件进行了优化。
- CoreML & TensorFlow: 适用于 iOS 和通用机器学习应用。 有关支持的格式及其各自优势的完整列表,请查看 Supported Export Formats 部分。
我可以使用哪些参数来微调我的 YOLO11 基准测试?
在运行基准测试时,可以自定义多个参数以满足特定需求:
- model: 模型文件的路径(例如,"yolo11n.pt")。
- data: 定义数据集的 YAML 文件路径(例如,"coco8.yaml")。
- imgsz: 输入图像大小,可以是单个整数或元组。
- half: 启用 FP16 推理以提高性能。
- int8: 激活 INT8 量化以适应边缘设备。
- device: 指定计算设备(例如,"cpu"、"cuda:0")。
- verbose: 控制日志详细程度。 有关参数的完整列表,请参阅 Arguments 部分。
📅 Created 11 months ago
✏️ Updated 13 days ago