Link to this sectionТестирование производительности моделей с помощью Ultralytics YOLO#
Link to this sectionВизуализация тестов#
Возможно, тебе потребуется обновить страницу, чтобы корректно отобразить графики из-за потенциальных проблем с файлами cookie.
Link to this sectionВведение#
Как только твоя модель обучена и валидирована, следующим логическим шагом будет оценка её производительности в различных реальных сценариях. Режим тестирования в Ultralytics YOLO26 служит именно этой цели, предоставляя надежную базу для оценки скорости и точности твоей модели для различных форматов экспорта.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
Link to this sectionПочему тестирование так важно?#
- Обоснованные решения: Получай представление о компромиссах между скоростью и точностью.
- Распределение ресурсов: Понимай, как различные форматы экспорта работают на разном оборудовании.
- Оптимизация: Узнай, какой формат экспорта обеспечивает наилучшую производительность для твоего конкретного случая использования.
- Экономическая эффективность: Эффективнее используй аппаратные ресурсы на основе результатов тестирования.
Link to this sectionОсновные метрики в режиме тестирования#
- mAP50-95: Для обнаружения объектов, сегментации и оценки позы.
- accuracy_top1: Для классификации изображений.
- Время вывода: Время, затраченное на каждое изображение, в миллисекундах.
Link to this sectionПоддерживаемые форматы экспорта#
- ONNX: Для оптимальной производительности на CPU
- TensorRT: Для максимальной эффективности на GPU
- OpenVINO: Для оптимизации под оборудование Intel
- CoreML, TensorFlow SavedModel и другие: Для разнообразных потребностей развертывания.
- Экспортируй в ONNX или OpenVINO для ускорения работы на CPU до 3 раз.
- Экспортируй в TensorRT для ускорения работы на GPU до 5 раз.
Link to this sectionПримеры использования#
Установи Ultralytics вместе с зависимостями для экспорта перед началом тестирования, чтобы избежать проблем с отсутствующими пакетами.
pip install ultralytics[export]Запусти тесты YOLO26n для всех поддерживаемых форматов экспорта (ONNX, TensorRT и т.д.). Смотри раздел Аргументы ниже для получения полного списка опций экспорта.
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")Link to this sectionАргументы#
Такие аргументы, как model, data, imgsz, half, device, verbose и format, дают пользователям гибкость для настройки тестов под свои специфические нужды и легкого сравнения производительности разных форматов экспорта.
| Ключ | Значение по умолчанию | Описание |
|---|---|---|
model | None | Указывает путь к файлу модели. Принимает форматы .pt и .yaml, например, "yolo26n.pt" для предобученных моделей или конфигурационных файлов. |
data | None | Путь к YAML-файлу, определяющему набор данных для тестирования, обычно включая пути и настройки для валидационных данных. Пример: "coco8.yaml". |
imgsz | 640 | Размер входного изображения для модели. Должен быть единственным целым числом для квадратных изображений (например, 640); benchmark() поддерживает только квадратные размеры изображений. |
half | False | Включает вывод FP16 (полуточная точность), сокращая использование памяти и, возможно, увеличивая скорость на совместимом оборудовании. Используй half=True для включения. |
int8 | False | Активирует INT8 квантование для еще более оптимизированной производительности на поддерживаемых устройствах, особенно полезно для граничных устройств. Установи int8=True для использования. |
device | 'cpu' | Определяет вычислительное устройство(а) для тестирования, такие как "cpu" или "cuda:0". |
verbose | False | Управляет уровнем детализации в логах вывода. Установи verbose=True для подробных логов. |
format | '' | Тестирует только указанный формат экспорта (например, format=onnx). Оставь пустым, чтобы автоматически протестировать каждый поддерживаемый формат. |
Link to this sectionФорматы экспорта#
Тесты будут автоматически запущены для всех возможных форматов экспорта, перечисленных ниже. Альтернативно, ты можешь запустить тесты для конкретного формата, используя аргумент format, который принимает любой из нижеперечисленных форматов.
| Формат | Аргумент format | Модель | Метаданные | Аргументы |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
Смотри подробную информацию об export на странице Export.
Link to this sectionFAQ#
Link to this sectionКак протестировать производительность моей модели YOLO26 с помощью Ultralytics?#
Ultralytics YOLO26 предлагает режим Benchmark для оценки производительности твоей модели при различных форматах экспорта. Этот режим дает представление о таких ключевых показателях, как средняя точность (mAP50-95), точность и время вывода в миллисекундах. Чтобы запустить бенчмарки, используй команды Python или CLI. Например, для тестирования на GPU:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)Более подробную информацию об аргументах бенчмарка смотри в разделе Arguments.
Link to this sectionКаковы преимущества экспорта моделей YOLO26 в различные форматы?#
Экспорт моделей YOLO26 в различные форматы, такие как ONNX, TensorRT и OpenVINO, позволяет оптимизировать производительность в зависимости от среды развертывания. Например:
- ONNX: Обеспечивает ускорение CPU до 3 раз.
- TensorRT: Предлагает ускорение GPU до 5 раз.
- OpenVINO: Специально оптимизирован для оборудования Intel.
Эти форматы повышают скорость и точность моделей, делая их более эффективными для различных реальных задач. Посети страницу Export для получения полной информации.
Link to this sectionПочему бенчмаркинг важен при оценке моделей YOLO26?#
Бенчмаркинг моделей YOLO26 необходим по нескольким причинам:
- Принятие взвешенных решений: Понимание баланса между скоростью и точностью.
- Распределение ресурсов: Оценка производительности на различных вариантах оборудования.
- Оптимизация: Определение формата экспорта с лучшей производительностью для конкретных случаев использования.
- Экономическая эффективность: Оптимизация использования оборудования на основе результатов бенчмарков.
Ключевые метрики, такие как mAP50-95, точность Top-1 и время вывода, помогают проводить эти оценки. Обратись к разделу Основные метрики для получения дополнительной информации.
Link to this sectionКакие форматы экспорта поддерживает YOLO26 и в чем их преимущества?#
YOLO26 поддерживает множество форматов экспорта, каждый из которых адаптирован под конкретное оборудование и задачи:
- ONNX: Лучший выбор для производительности CPU.
- TensorRT: Идеально подходит для эффективности GPU.
- OpenVINO: Оптимизирован для оборудования Intel.
- CoreML и TensorFlow: Полезны для iOS и общих приложений ML.
Полный список поддерживаемых форматов и их преимущества смотри в разделе Supported Export Formats.
Link to this sectionКакие аргументы я могу использовать для точной настройки бенчмарков YOLO26?#
При запуске бенчмарков можно настроить несколько аргументов в соответствии с твоими потребностями:
- model: Путь к файлу модели (например, "yolo26n.pt").
- data: Путь к файлу YAML с описанием набора данных (например, "coco8.yaml").
- imgsz: Размер входного изображения (целое число или кортеж).
- half: Включение вывода FP16 для повышения производительности.
- int8: Активация квантования INT8 для периферийных устройств (edge devices).
- device: Указание вычислительного устройства (например, "cpu", "cuda:0").
- verbose: Управление уровнем детализации логирования.
Полный список аргументов можно найти в разделе Arguments.