Как обучать, валидировать, выполнять предсказания, экспортировать и тестировать производительность моделей Ultralytics YOLO
Узнай, как обучать, валидировать, выполнять предсказания, экспортировать и тестировать производительность моделей Ultralytics YOLO!

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

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









