使用 Ultralytics YOLO 进行模型基准测试
基准测试可视化
刷新浏览器
由于潜在的 Cookie 问题,您可能需要刷新页面才能正确查看图表。
简介
一旦您的模型经过训练和验证,接下来合乎逻辑的步骤是评估其在各种真实场景中的性能。Ultralytics YOLO11 中的基准模式通过提供一个强大的框架来实现此目的,用于评估您的模型在一系列导出格式中的速度和 准确性。
观看: Ultralytics YOLO11 模型基准测试 | 如何比较不同硬件上的模型性能?
为什么基准测试至关重要?
- 明智的决策: 深入了解速度和准确性之间的权衡。
- 资源分配: 了解不同的导出格式在不同硬件上的表现。
- 优化: 了解哪种导出格式为您的特定用例提供最佳性能。
- 成本效益: 根据基准测试结果,更有效地利用硬件资源。
基准模式中的关键指标
支持的导出格式
- ONNX: 实现最佳 CPU 性能
- TensorRT: 实现最大 GPU 效率
- OpenVINO: 针对 Intel 硬件优化
- CoreML、TensorFlow SavedModel 及更多: 满足多样化的部署需求。
提示
- 导出为 ONNX 或 OpenVINO 格式,CPU 速度提升高达 3 倍。
- 导出为 TensorRT 格式,GPU 速度提升高达 5 倍。
使用示例
在所有支持的导出格式(包括 ONNX、TensorRT 等)上运行 YOLO11n 基准测试。有关导出参数的完整列表,请参见下面的“参数”部分。
示例
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
# Benchmark specific export format
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 format=onnx
参数
诸如以下的参数: model
, data
, imgsz
, half
, device
, verbose
和 format
使用户可以灵活地根据其特定需求微调基准测试,并轻松比较不同导出格式的性能。
键 | 默认值 | 描述 |
---|---|---|
model |
None |
指定模型文件的路径。接受 .pt 和 .yaml 格式,例如, "yolo11n.pt" 用于预训练模型或配置文件。 |
data |
None |
YAML 文件的路径,用于定义基准测试的数据集,通常包括 验证数据的路径的路径和设置。例如: "coco8.yaml" . |
imgsz |
640 |
模型的输入图像大小。可以是正方形图像的单个整数或元组 (width, height) 对于非正方形图像,例如 (640, 480) . |
half |
False |
启用 FP16(半精度)推理,从而减少内存使用量,并可能提高兼容硬件上的速度。使用 half=True 启用。 |
int8 |
False |
激活 INT8 量化,以进一步优化支持设备上的性能,尤其适用于边缘设备。设置 int8=True 使用。 |
device |
None |
定义用于基准测试的计算设备,例如 "cpu" 或 "cuda:0" . |
verbose |
False |
控制日志输出中的详细程度。设置 verbose=True 用于详细的日志记录。 |
format |
'' |
在单个导出格式上对模型进行基准测试。即 format=onnx |
导出格式
基准测试将尝试在下面列出的所有可能的导出格式上自动运行。或者,您可以使用以下命令为特定格式运行基准测试 format
参数,它接受以下提到的任何格式。
格式 | format 参数 |
模型 | 元数据 | 参数 |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name , device |
查看完整 export
详情请参见 导出 页面。
常见问题
如何使用 Ultralytics 来基准测试我的 YOLO11 模型的性能?
Ultralytics YOLO11 提供了一个基准测试模式,用于评估您的模型在不同导出格式下的性能。此模式提供了关键指标的深入了解,例如平均精度均值 (mAP50-95)、准确率和以毫秒为单位的推理时间。要运行基准测试,您可以使用 python 或 CLI 命令。例如,要在 GPU 上进行基准测试:
示例
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
有关基准测试参数的更多详细信息,请访问参数部分。
将 YOLO11 模型导出为不同格式有什么好处?
将 YOLO11 模型导出为不同的格式,如 ONNX、TensorRT 和 OpenVINO,您可以根据您的部署环境优化性能。例如:
- ONNX: 提供高达 3 倍的 CPU 速度提升。
- TensorRT: 提供高达 5 倍的 GPU 速度提升。
- OpenVINO: 专门为 Intel 硬件优化。
这些格式提高了模型的速度和准确性,使其对于各种实际应用更加高效。请访问导出页面了解完整详细信息。
为什么在评估 YOLO11 模型时,基准测试至关重要?
对 YOLO11 模型进行基准测试至关重要,原因如下:
- 明智的决策: 了解速度和准确性之间的权衡。
- 资源分配: 评估不同硬件选项的性能。
- 优化: 确定哪种导出格式为特定用例提供最佳性能。
- 成本效益: 根据基准测试结果优化硬件使用。
诸如 mAP50-95、Top-5 准确率和推理时间等关键指标有助于进行这些评估。有关更多信息,请参阅 关键指标 部分。
YOLO11 支持哪些导出格式,它们的优势是什么?
YOLO11 支持多种导出格式,每种格式都针对特定的硬件和用例量身定制:
- ONNX: 最适合 CPU 性能。
- TensorRT: 非常适合 GPU 效率。
- OpenVINO: 针对 Intel 硬件进行了优化。
- CoreML & TensorFlow: 适用于 iOS 和通用 ML 应用。
有关支持的格式及其各自优点的完整列表,请查看支持的导出格式部分。
我可以使用哪些参数来微调我的 YOLO11 基准测试?
运行基准测试时,可以自定义多个参数以满足特定需求:
- model: 模型文件的路径(例如,“yolo11n.pt”)。
- data: 定义数据集的 YAML 文件的路径(例如,“coco8.yaml”)。
- imgsz: 输入图像大小,可以是单个整数或元组。
- half: 启用 FP16 推理以获得更好的性能。
- int8: 激活 INT8 量化以用于边缘设备。
- device: 指定计算设备(例如,“cpu”、“cuda:0”)。
- verbose: 控制日志记录的详细程度。
有关完整的参数列表,请参阅参数部分。