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

Давай погрузимся в мир Ultralytics и изучим различные режимы, доступные для разных моделей YOLO. Независимо от того, обучаешь ли ты кастомные модели object detection или работаешь над segmentation, понимание этих режимов является важнейшим шагом. Давай сразу перейдем к делу!
В документации Ultralytics ты найдешь несколько modes, которые можно использовать для своих моделей, будь то train, validate, predict, export, benchmark или track. Каждый из этих режимов служит уникальной цели и помогает оптимизировать производительность и развертывание твоей модели.
Режим Train#
Сначала давай посмотрим на режим train. Именно здесь ты создаешь и дорабатываешь свою модель. Ты можешь найти подробные инструкции и video guides в документации, что упрощает начало работы по обучению твоих кастомных моделей.
Обучение модели включает предоставление ей нового набора данных, что позволяет ей изучать различные паттерны. После обучения модель можно использовать в реальном времени для обнаружения новых объектов, на которых она была обучена. Перед началом процесса обучения важно разметить набор данных в формате YOLO.
Режим Validate#
Далее давай перейдем к режиму validate. Валидация необходима для настройки гиперпараметров и обеспечения высокой производительности твоей модели. Ultralytics предоставляет множество вариантов валидации, включая автоматические настройки, поддержку нескольких метрик и совместимость с Python API. Ты можешь даже запускать валидацию напрямую через интерфейс командной строки (CLI) с помощью команды ниже.
Зачем нужна валидация?#
Валидация критически важна для:
- Precision: обеспечения точного обнаружения объектов твоей моделью.
- Convenience: упрощения процесса валидации.
- Flexibility: предложения множества методов валидации.
- Hyperparameter Tuning: оптимизации твоей модели для достижения лучшей производительности.
Ultralytics также предоставляет примеры, которые ты можешь скопировать и вставить в свои скрипты Python. Эти примеры включают такие параметры, как размер изображения, размер пакета (batch size), устройство (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.
Важность бенчмаркинга#
Бенчмаркинг демонстрирует, как различное оборудование и форматы экспорта могут влиять на производительность модели. Очень важно тестировать свои модели, особенно если ты планируешь развертывать их на специализированном оборудовании или edge-устройствах. Этот процесс гарантирует, что твоя модель оптимизирована для целевой среды и обеспечивает наилучшую производительность.
Заключение#
Подводя итог, режимы в документации Ultralytics — это мощные инструменты для обучения, валидации, предсказания, экспорта и бенчмаркинга твоих моделей YOLO. Каждый режим играет важную роль в оптимизации модели и подготовке ее к развертыванию.
Не забудь изучить наше community и присоединиться к нему, а также попробовать предоставленные фрагменты кода в своих проектах. С помощью этих инструментов ты сможешь создавать высокопроизводительные модели и обеспечить их эффективную работу в любой среде.






