Перейти к содержимому

Бенчмаркинг моделей с 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 Самоучитель по режимам: Бенчмарк

Почему бенчмаркинг крайне важен?

  • Принятие обоснованных решений: Узнай о компромиссе между скоростью и точностью.
  • Распределение ресурсов: Пойми, как разные форматы экспорта работают на разном оборудовании.
  • Оптимизация: Узнай, какой формат экспорта обеспечивает наилучшую производительность для твоего конкретного случая использования.
  • Экономическая эффективность: Более эффективно используй аппаратные ресурсы, основываясь на результатах бенчмарков.

Ключевые показатели в режиме бенчмарка

  • mAP50-95: For object detection, segmentation, and pose estimation.
  • accuracy_top5: For image classification.
  • Время вывода: время, затрачиваемое на каждое изображение, в миллисекундах.

Поддерживаемые форматы экспорта

  • ONNX: Для оптимальной работы CPU
  • TensorRT: Для максимальной эффективности GPU
  • OpenVINO: Для оптимизации аппаратного обеспечения Intel
  • CoreML, TensorFlow SavedModel , и многое другое: Для различных потребностей в развертывании.

Наконечник

  • Экспортируй в ONNX или OpenVINO , чтобы ускорить работу с CPU в 3 раза.
  • Экспортируй в TensorRT для ускорения до 5 раз GPU .

Примеры использования

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, device, и verbose предоставляют пользователям гибкость, позволяющую тонко настраивать бенчмарки под свои конкретные нужды и с легкостью сравнивать производительность разных форматов экспорта.

КлючЗначение по умолчаниюОписание
modelNoneУказывает путь к файлу модели. Принимает оба варианта .pt и .yaml Форматы, например, "yolo11n.pt" для предварительно обученных моделей или конфигурационных файлов.
dataNonePath to a YAML file defining the dataset for benchmarking, typically including paths and settings for validation data. Example: "coco8.yaml".
imgsz640Размер входного изображения для модели. Может быть одним целым числом для квадратных изображений или кортежем (width, height) для неквадратных, например, (640, 480).
halfFalseВключает вычисления FP16 (с половинной точностью), что уменьшает потребление памяти и, возможно, увеличивает скорость на совместимом оборудовании. Используй half=True чтобы включить.
int8FalseАктивирует квантование INT8 для дальнейшей оптимизации производительности на поддерживаемых устройствах, особенно полезно для edge-устройств. Установи int8=True использовать.
deviceNoneОпределяет вычислительное устройство (устройства) для бенчмарка, например "cpu", "cuda:0", или список устройств, например "cuda:0,1" для мультиGPU установок.
verboseFalseУправляет уровнем детализации вывода логов. Булево значение; устанавливается verbose=True для подробных логов или float для пороговых ошибок.

Форматы экспорта

Бенчмарки попытаются автоматически запуститься на всех возможных форматах экспорта, приведенных ниже.

Формат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 Край TPUedgetpuyolo11n_edgetpu.tfliteimgsz
TF.jstfjsyolo11n_web_model/imgsz, half, int8, batch
PaddlePaddlepaddleyolo11n_paddle_model/imgsz, batch
NCNNncnnyolo11n_ncnn_model/imgsz, half, batch

Смотреть полностью export подробности в Экспорт Страница.

ВОПРОСЫ И ОТВЕТЫ

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: Обеспечивает ускорение до 5x GPU .
  • OpenVINO: Specifically optimized for Intel hardware. These formats enhance both the speed and accuracy of your models, making them more efficient for various real-world applications. Visit the Export page for complete details.

Why is benchmarking crucial in evaluating YOLO11 models?

Benchmarking your YOLO11 models is essential for several reasons:

  • Принятие обоснованных решений: Пойми компромисс между скоростью и точностью.
  • Распределение ресурсов: Оцени производительность при различных вариантах аппаратного обеспечения.
  • Оптимизация: Определи, какой формат экспорта обеспечивает наилучшую производительность для конкретных случаев использования.
  • Cost Efficiency: Optimize hardware usage based on benchmark results. Key metrics such as mAP50-95, Top-5 accuracy, and inference time help in making these evaluations. Refer to the Key Metrics section for more information.

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").
  • data: Путь к YAML-файлу, определяющему набор данных (например, "coco8.yaml").
  • imgsz: Размер входного изображения, либо в виде одного целого числа, либо в виде кортежа.
  • половина: Включи вывод FP16, чтобы повысить производительность.
  • int8: Активируй квантование INT8 для краевых устройств.
  • device: Укажи вычислительное устройство (например, "cpu", "cuda:0 ").
  • verbose: Control the level of logging detail. For a full list of arguments, refer to the Arguments section.
📅 Created 11 months ago ✏️ Updated 20 days ago

Комментарии