Бенчмаркинг моделей с 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.
Пример
Аргументы
Такие аргументы, как model
, data
, imgsz
, half
, device
, и verbose
предоставляют пользователям гибкость, позволяющую тонко настраивать бенчмарки под свои конкретные нужды и с легкостью сравнивать производительность разных форматов экспорта.
Ключ | Значение по умолчанию | Описание |
---|---|---|
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 для дальнейшей оптимизации производительности на поддерживаемых устройствах, особенно полезно для edge-устройств. Установи int8=True использовать. |
device | None | Определяет вычислительное устройство (устройства) для бенчмарка, например "cpu" , "cuda:0" , или список устройств, например "cuda:0,1" для мультиGPU установок. |
verbose | False | Управляет уровнем детализации вывода логов. Булево значение; устанавливается verbose=True для подробных логов или float для пороговых ошибок. |
Форматы экспорта
Бенчмарки попытаются автоматически запуститься на всех возможных форматах экспорта, приведенных ниже.
Формат | 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 Край 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
подробности в Экспорт Страница.
ВОПРОСЫ И ОТВЕТЫ
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:
Пример
Подробнее об аргументах бенчмарка читай в разделе " Аргументы ".
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.