Как обучать, валидировать, запускать предсказания, экспортировать и сравнивать модели Ultralytics YOLO
Узнай, как работают режимы train, val, predict, export, track и benchmark в Ultralytics YOLO, и ознакомься с рекомендациями по метрикам валидации и результатами практических тестов.
Nuvola Ladi3 мин. чтения
Модели Ultralytics YOLO предлагают несколько режимов, охватывающих весь жизненный цикл модели. Работаешь ли ты над собственными моделями для обнаружения объектов или занимаешься сегментацией, понимание этих режимов — важный этап.
В документации Ultralytics ты найдёшь несколько режимов для работы с моделями: обучение, валидация, предсказание, экспорт, отслеживание и бенчмаркинг. Каждый режим выполняет свою задачу и помогает оптимизировать производительность модели и её развёртывание.
Режим обучения#
Начнём с режима train. В нём ты создаёшь и дорабатываешь модель. В документации есть подробные инструкции и видеоруководства, которые помогут легко начать обучение собственных моделей.
Обучение модели включает передачу ей нового набора данных, на котором она учится распознавать различные закономерности. После обучения модель можно использовать в реальном времени для обнаружения новых объектов, на которых она обучалась. Перед началом обучения важно разметить набор данных в формате YOLO.
Режим валидации#
Теперь рассмотрим режим validate. Валидация необходима для настройки гиперпараметров и проверки производительности модели. Ultralytics предлагает различные варианты валидации, включая автоматические настройки, поддержку нескольких метрик и совместимость с Python API. Валидацию можно запустить прямо через интерфейс командной строки (CLI) одной командой.
Зачем нужна валидация?#
Валидация важна для:
- Точности: чтобы модель точно обнаруживала объекты.
- Удобства: чтобы упростить процесс валидации.
- Гибкости: чтобы использовать разные методы валидации.
- Настройки гиперпараметров: чтобы оптимизировать модель и повысить ее производительность.
Ultralytics также предоставляет примеры кода, которые можно скопировать и вставить в скрипты Python. В них используются такие параметры, как размер изображения, размер пакета, устройство (CPU или GPU) и пересечение над объединением (IoU).
Режим предсказания#
После обучения и валидации модели пора делать предсказания. Режим Predict позволяет запускать инференс на новых данных и смотреть, как работает модель. Этот режим отлично подходит для проверки производительности модели на реальных данных. Чтобы запускать предсказания на изображениях, достаточно нескольких строк кода на Python.
Режим экспорта#
После валидации и предсказаний можно развернуть модель. Режим экспорта позволяет преобразовать модель в различные форматы, например ONNX или TensorRT, что упрощает ее развертывание на разных платформах.
Режим бенчмаркинга#
Наконец, рассмотрим режим бенчмаркинга. Бенчмаркинг необходим для оценки производительности модели в различных сценариях. Этот режим помогает принимать обоснованные решения о распределении ресурсов, оптимизации и экономической эффективности.
Как провести бенчмаркинг#
Чтобы запустить бенчмарк, используй примеры для пользователей из документации. В них рассматриваются ключевые метрики и форматы экспорта, включая ONNX и TensorRT. Также можно задать аргумент quantize для целочисленного квантования (INT8) или половинной точности (FP16), чтобы оценить, как разные настройки влияют на производительность.
Пример бенчмаркинга в реальных условиях#
Рассмотрим пример бенчмаркинга в реальных условиях. При тестировании модели PyTorch мы получаем скорость инференса 68 миллисекунд на GPU RTX 3070. После экспорта в TorchScript скорость инференса снижается до 4 миллисекунд, что демонстрирует значительное улучшение.
Для моделей ONNX мы достигаем скорости инференса 21 миллисекунда. При тестировании этих моделей на CPU (Intel i9 13-го поколения) результаты различаются. TorchScript выполняется за 115 миллисекунд, а ONNX работает быстрее — за 84 миллисекунды. Наконец, OpenVINO, оптимизированный для оборудования Intel, достигает результата 23 миллисекунды.

Рис. 1. Николай Нильсен демонстрирует запуск бенчмаркинга моделей Ultralytics YOLO.
Зачем нужен бенчмаркинг#
Бенчмаркинг показывает, как различные аппаратные платформы и форматы экспорта влияют на производительность модели. Особенно важно тестировать модели, если планируешь развертывать их на собственном оборудовании или периферийных устройствах. Это позволяет оптимизировать модель для целевой среды и добиться максимально возможной производительности.
Заключение#
Итак, режимы в документации Ultralytics — это мощные инструменты для обучения, валидации, предсказания, экспорта и бенчмаркинга моделей YOLO. Каждый режим играет важную роль в оптимизации модели и подготовке к развертыванию.
Не забудь заглянуть в наше сообщество, присоединиться к нему и попробовать приведенные фрагменты кода в своих проектах. С помощью этих инструментов ты сможешь создавать высокопроизводительные модели и эффективно запускать их в любой среде.
Автор
Комментарии
Задай вопрос, поделись результатами или помоги кому-нибудь.










