Эталонное тестирование моделей с помощью Ultralytics YOLO
Визуализация эталонного тестирования
Обновить браузер
Возможно, вам потребуется обновить страницу, чтобы правильно просмотреть графики из-за возможных проблем с файлами cookie.
Введение
После того, как ваша модель обучена и проверена, следующим логическим шагом является оценка ее производительности в различных реальных сценариях. Режим бенчмаркинга в Ultralytics YOLO11 служит этой цели, предоставляя надежную платформу для оценки скорости и точности вашей модели в различных форматах экспорта.
Смотреть: Бенчмаркинг моделей Ultralytics YOLO11 | Как сравнить производительность модели на различном оборудовании?
Почему эталонное тестирование имеет решающее значение?
- Обоснованные решения: Получите представление о компромиссах между скоростью и точностью.
- Распределение ресурсов: Поймите, как различные форматы экспорта работают на различном оборудовании.
- Оптимизация: Узнайте, какой формат экспорта предлагает наилучшую производительность для вашего конкретного случая использования.
- Экономическая эффективность: Более эффективно используйте аппаратные ресурсы на основе результатов бенчмаркинга.
Ключевые метрики в режиме эталонного тестирования
- mAP50-95: Для обнаружения объектов, сегментации и оценки позы.
- accuracy_top5: Для классификации изображений.
- Время инференса: Время, затраченное на каждое изображение в миллисекундах.
Поддерживаемые форматы экспорта
- ONNX: Для оптимальной производительности CPU
- TensorRT: Для максимальной эффективности GPU
- OpenVINO: Для оптимизации оборудования Intel
- CoreML, TensorFlow SavedModel и другие: Для различных потребностей развертывания.
Совет
- Экспорт в ONNX или OpenVINO для 3-кратного ускорения CPU.
- Экспорт в TensorRT для 5-кратного ускорения GPU.
Примеры использования
Запустите бенчмарки YOLO11n во всех поддерживаемых форматах экспорта, включая ONNX, TensorRT и т. д. Полный список аргументов экспорта см. в разделе «Аргументы» ниже.
Пример
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
подробности в Экспорт странице.
Часто задаваемые вопросы
Как оценить производительность моей модели YOLO11 с помощью Ultralytics?
Ultralytics YOLO11 предлагает режим Benchmark для оценки производительности вашей модели в различных форматах экспорта. Этот режим предоставляет информацию о ключевых метриках, таких как средняя точность (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 и общих приложений машинного обучения.
Чтобы получить полный список поддерживаемых форматов и их соответствующих преимуществ, ознакомьтесь с разделом Поддерживаемые форматы экспорта.
Какие аргументы я могу использовать для точной настройки моих эталонных тестов YOLO11?
При проведении эталонных тестов можно настроить несколько аргументов в соответствии с конкретными потребностями:
- model: Путь к файлу модели (например, "yolo11n.pt").
- data: Путь к YAML-файлу, определяющему набор данных (например, "coco8.yaml").
- imgsz: Размер входного изображения, либо как одно целое число, либо как кортеж.
- half: Включите вывод FP16 для повышения производительности.
- int8: Активируйте квантование INT8 для периферийных устройств.
- device: Укажите вычислительное устройство (например, "cpu", "cuda:0").
- verbose: Управление уровнем детализации логирования.
Полный список аргументов см. в разделе Аргументы.