Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
8.7 KiB
comments, description, keywords
| comments | description | keywords |
|---|---|---|
| true | Узнайте, как профилировать скорость и точность YOLOv8 в различных форматах экспорта; получите информацию о метриках mAP50-95, accuracy_top5 и др. | Ultralytics, YOLOv8, бенчмаркинг, профилирование скорости, профилирование точности, mAP50-95, accuracy_top5, ONNX, OpenVINO, TensorRT, форматы экспорта YOLO |
Бенчмаркинг моделей с Ultralytics YOLO
Введение
После того, как ваша модель обучена и валидирована, следующим логическим шагом является оценка ее производительности в различных реальных сценариях. Режим бенчмаркинга в Ultralytics YOLOv8 служит этой цели, предоставляя надежный инструментарий для оценки скорости и точности вашей модели в ряде форматов экспорта.
Почему бенчмаркинг критичен?
- Обоснованные решения: Получение представления о компромиссе между скоростью и точностью.
- Распределение ресурсов: Понимание производительности различных форматов экспорта на разном оборудовании.
- Оптимизация: Выяснение, какой формат экспорта предлагает лучшую производительность для вашего конкретного случая.
- Эффективность затрат: Сделайте использование аппаратных ресурсов более эффективным на основе результатов бенчмаркинга.
Ключевые метрики в режиме бенчмаркинга
- mAP50-95: Для детектирования объектов, сегментации и оценки поз.
- accuracy_top5: Для классификации изображений.
- Время инференса: Время, затрачиваемое на каждое изображение в миллисекундах.
Поддерживаемые форматы экспорта
- ONNX: Для оптимальной производительности ЦП
- TensorRT: Для максимальной эффективности GPU
- OpenVINO: Для оптимизации под аппаратное обеспечение Intel
- CoreML, TensorFlow SavedModel и другие: Для разнообразных потребностей развертывания.
!!! Tip "Совет"
* Экспортируйте в ONNX или OpenVINO для ускорения процессора до 3 раз.
* Экспортируйте в TensorRT для ускорения GPU до 5 раз.
Примеры использования
Запустите бенчмарк YOLOv8n на всех поддерживаемых форматах экспорта, включая ONNX, TensorRT и т. д. Смотрите раздел Аргументы ниже для полного списка параметров экспорта.
!!! Example "Пример"
=== "Python"
```python
from ultralytics.utils.benchmarks import benchmark
# Бенчмарк на GPU
benchmark(model='yolov8n.pt', data='coco8.yaml', imgsz=640, half=False, device=0)
```
=== "CLI"
```bash
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0
```
Аргументы
Аргументы, такие как model, data, imgsz, half, device и verbose, предоставляют пользователям гибкость для тонкой настройки бенчмарков под их конкретные потребности и сравнения производительности различных форматов экспорта с легкостью.
| Ключ | Значение | Описание |
|---|---|---|
model |
None |
путь к файлу модели, например yolov8n.pt, yolov8n.yaml |
data |
None |
путь к YAML, ссылающемуся на набор данных для бенчмаркинга (под меткой val) |
imgsz |
640 |
размер изображения как скаляр или список (h, w), например (640, 480) |
half |
False |
квантование FP16 |
int8 |
False |
квантование INT8 |
device |
None |
устройство для запуска, например cuda device=0 или device=0,1,2,3 или device=cpu |
verbose |
False |
не продолжать при ошибке (bool), или пороговое значение для val (float) |
Форматы экспорта
Бенчмарки попытаются автоматически запустить для всех возможных форматов экспорта ниже.
| Формат | Аргумент format |
Модель | Метаданные | Аргументы |
|---|---|---|---|---|
| PyTorch | - | yolov8n.pt |
✅ | - |
| TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz, optimize |
| ONNX | onnx |
yolov8n.onnx |
✅ | imgsz, half, dynamic, simplify, opset |
| OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz, half |
| TensorRT | engine |
yolov8n.engine |
✅ | imgsz, half, dynamic, simplify, workspace |
| CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz, half, int8, nms |
| TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz, keras |
| TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz |
| TF Lite | tflite |
yolov8n.tflite |
✅ | imgsz, half, int8 |
| TF Edge TPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz |
| TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz |
| PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz |
| ncnn | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz, half |
Смотрите полную информацию о export на странице Экспорт.