Как обучать, проверять, предсказывать, экспортировать и проводить бенчмаркинг с моделями Ultralytics YOLO
Узнай, как обучать, проверять, предсказывать, экспортировать и проводить бенчмаркинг с помощью моделей Ultralytics YOLO!
Давай погрузимся в мир Ultralytics и изучим различные режимы, доступные для разных моделей YOLO. Независимо от того, обучаешь ли ты пользовательские модели object detection или работаешь над segmentation, понимание этих режимов — важный шаг. Давай начнем!
В документации Ultralytics ты найдешь несколько режимов, которые можно использовать для своих моделей, будь то train, validate, predict, export, benchmark или track. Каждый из этих режимов служит уникальной цели и помогает оптимизировать производительность и развертывание модели.
Link to this sectionРежим Train#
Сначала давай посмотрим на режим train. Это этап, на котором ты создаешь и дорабатываешь свою модель. Ты можешь найти подробные инструкции и видеоруководства в документации, которые помогут тебе легко приступить к обучению собственных моделей.
Обучение модели включает предоставление ей нового набора данных, что позволяет ей изучать различные паттерны. После обучения модель можно использовать в реальном времени для обнаружения новых объектов, на которых она была обучена. Перед началом процесса обучения важно разметить набор данных в формате YOLO.
Link to this sectionРежим Validate#
Далее давай перейдем к режиму validate. Валидация необходима для настройки гиперпараметров и обеспечения высокой производительности твоей модели. Ultralytics предоставляет множество вариантов валидации, включая автоматические настройки, поддержку нескольких метрик и совместимость с Python API. Ты можешь даже запускать валидацию напрямую через интерфейс командной строки (CLI) с помощью команды ниже.
Link to this sectionЗачем нужна валидация?#
Валидация критически важна для:
- Precision: обеспечения точного обнаружения объектов твоей моделью.
- Convenience: упрощения процесса валидации.
- Flexibility: предложения множества методов валидации.
- Hyperparameter Tuning: оптимизации твоей модели для достижения лучшей производительности.
Ultralytics также предоставляет примеры, которые ты можешь скопировать и вставить в свои скрипты Python. Эти примеры включают такие параметры, как размер изображения, размер пакета (batch size), устройство (CPU или GPU) и IoU.
Link to this sectionРежим Predict#
Как только твоя модель обучена и валидирована, пора переходить к прогнозам. Режим Predict позволяет запускать вывод на новых данных и видеть модель в действии. Этот режим идеально подходит для тестирования производительности твоей модели на реальных данных. С помощью приведенного ниже фрагмента кода на Python ты сможешь запускать предсказания на своих изображениях!
Link to this sectionРежим Export#
После валидации и прогнозирования ты, возможно, захочешь развернуть свою модель. Режим export позволяет преобразовать модель в различные форматы, такие как ONNX или TensorRT, что упрощает развертывание на разных платформах.
Link to this sectionРежим Benchmark#
Наконец, у нас есть режим benchmark. Бенчмаркинг необходим для оценки производительности твоей модели в различных сценариях. Этот режим помогает тебе принимать обоснованные решения о распределении ресурсов, оптимизации и эффективности затрат.
Link to this sectionКак проводить бенчмаркинг#
Чтобы запустить бенчмарк, ты можешь использовать примеры из документации. Они охватывают ключевые метрики и форматы экспорта, включая ONNX и TensorRT. Ты также можешь указать параметры, такие как целочисленная квантование (INT8) или квантование с плавающей запятой (FP16), чтобы увидеть, как разные настройки влияют на производительность.
Link to this sectionПример бенчмаркинга в реальных условиях#
Давай рассмотрим пример бенчмаркинга. При тестировании нашей модели PyTorch мы наблюдаем скорость вывода 68 миллисекунд на GPU RTX 3070. После экспорта в TorchScript скорость вывода падает до 4 миллисекунд, что демонстрирует значительное улучшение.
Для моделей ONNX мы достигаем скорости вывода 21 миллисекунда. Тестируя эти модели на CPU (Intel i9 13-го поколения), мы видим разные результаты. TorchScript работает за 115 миллисекунд, в то время как ONNX показывает себя лучше — 84 миллисекунды. Наконец, OpenVINO, оптимизированный для оборудования Intel, достигает впечатляющих 23 миллисекунд.

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






