跳至内容

模型基准Ultralytics YOLO

Ultralytics YOLO 生态系统和集成

导言

Once your model is trained and validated, the next logical step is to evaluate its performance in various real-world scenarios. Benchmark mode in Ultralytics YOLO11 serves this purpose by providing a robust framework for assessing the speed and accuracy of your model across a range of export formats.



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

基准测试为何至关重要?

  • 明智决策:深入了解速度与准确性之间的权衡。
  • 资源分配:了解不同导出格式在不同硬件上的性能。
  • 优化:了解哪种导出格式能为您的特定用例提供最佳性能。
  • 成本效益:根据基准测试结果,更有效地利用硬件资源。

基准模式下的关键指标

支持的导出格式

  • ONNX: CPU 最佳性能
  • TensorRT: GPU
  • OpenVINO:用于Intel 硬件优化
  • CoreML,TensorFlow SavedModel , 以及更多:满足各种部署需求。

提示

  • 导出到ONNX 或OpenVINO ,可将CPU 的速度提高 3 倍。
  • 导出到TensorRT ,可将GPU 的速度提高 5 倍。

使用示例

Run YOLO11n benchmarks on all supported export formats including ONNX, TensorRT etc. See Arguments section below for a full list of export arguments.

示例

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

论据

诸如 model, data, imgsz, half, deviceverbose 用户可以灵活地根据自己的具体需求对基准进行微调,并轻松比较不同导出格式的性能。

钥匙 默认值 说明
model None 指定模型文件的路径。同时接受 .pt.yaml 格式,例如 "yolo11n.pt" 预训练模型或配置文件。
data None Path to a YAML file defining the dataset for benchmarking, typically including paths and settings for validation data. Example: "coco8.yaml".
imgsz 640 模型的输入图像大小。对于正方形图像,可以是单个整数,也可以是一个元组 (width, height) 为非正方形,例如 (640, 480).
half False 启用 FP16(半精度)推理,在兼容硬件上可减少内存使用量并提高速度。使用 half=True 以启用。
int8 False 激活 INT8 量化,进一步优化受支持设备的性能,尤其适用于边缘设备。设置 int8=True 使用。
device None 定义用于基准测试的计算设备,例如 "cpu", "cuda:0"或设备列表,如 "cuda:0,1" GPU 。
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 轻型 tflite yolo11n.tflite imgsz, half, int8, batch
TF 边缘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 中的详细信息 出口 page.

常见问题

How do I benchmark my YOLO11 model's performance using Ultralytics?

Ultralytics YOLO11 offers a Benchmark mode to assess your model's performance across different export formats. This mode provides insights into key metrics such as mean Average Precision (mAP50-95), accuracy, and inference time in milliseconds. To run benchmarks, you can use either Python or CLI commands. For example, to benchmark on a 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

有关基准参数的详细信息,请访问参数部分。

What are the benefits of exporting YOLO11 models to different formats?

Exporting YOLO11 models to different formats such as ONNX, TensorRT, and OpenVINO allows you to optimize performance based on your deployment environment. For instance:

  • ONNX:提供高达 3 倍的CPU 速度。
  • TensorRT:提供高达 5 倍的GPU 速度。
  • OpenVINO:专门针对Intel 硬件进行了优化。 这些格式提高了模型的速度和精度,使其在各种实际应用中更加高效。请访问导出页面了解完整详情。

Why is benchmarking crucial in evaluating YOLO11 models?

Benchmarking your YOLO11 models is essential for several reasons:

  • 知情决策:了解速度与准确性之间的权衡。
  • 资源分配:衡量不同硬件选项的性能。
  • 优化:确定哪种导出格式能为特定用例提供最佳性能。
  • 成本效益:根据基准结果优化硬件使用。 mAP50-95、Top-5 精确度和推理时间等关键指标有助于进行这些评估。更多信息,请参阅关键指标部分。

Which export formats are supported by YOLO11, and what are their advantages?

YOLO11 supports a variety of export formats, each tailored for specific hardware and use cases:

  • ONNX: CPU 性能最佳。
  • TensorRT: GPU 效率的理想选择。
  • OpenVINO:针对Intel 硬件进行了优化。
  • CoreML & TensorFlow: Useful for iOS and general ML applications. For a complete list of supported formats and their respective advantages, check out the Supported Export Formats section.

What arguments can I use to fine-tune my YOLO11 benchmarks?

在运行基准测试时,有几个参数可以根据具体需要进行定制:

  • model: Path to the model file (e.g., "yolo11n.pt").
  • 数据:定义数据集的 YAML 文件的路径(如 "coco8.yml")。
  • imgsz:输入图像的大小,可以是一个整数,也可以是一个元组。
  • 一半:启用 FP16 推理,提高性能。
  • int8:为边缘设备激活 INT8 量化。
  • 设备:指定计算设备(例如,"cpu"、"cuda:0")。
  • verbose:控制日志记录的详细程度。 有关参数的完整列表,请参阅参数部分。

📅 Created 11 months ago ✏️ Updated 6 days ago

评论