Зелёная проверка
Ссылка копируется в буфер обмена

Как использовать Ultralytics YOLOv5 с Comet

Узнай, как Ultralytics сотрудничает с Comet для Ultralytics YOLOv5 оптимизации моделей: отслеживание в реальном времени, оптимизированное сотрудничество и улучшенная воспроизводимость.

На Ultralytics мы на коммерческой основе сотрудничаем с другими стартапами, которые помогают нам финансировать исследования и разработку наших потрясающих инструментов с открытым исходным кодом, таких как YOLOv5, чтобы они оставались бесплатными для всех. Эта статья может содержать партнерские ссылки на этих партнеров.

Наш новый партнер, Cometсоздает инструменты, которые помогают ученым, инженерам и руководителям команд ускорять и оптимизировать модели машинного обучения и глубокого обучения.

Comet это мощный инструмент для отслеживания твоих моделей, наборов данных и метрик. Он даже записывает в лог твои системные переменные и переменные окружения, чтобы обеспечить воспроизводимость и беспроблемную отладку каждого запуска. Это как виртуальный помощник, который волшебным образом знает, какие заметки нужно вести. Отслеживай и визуализируй показатели модели в реальном времени, сохраняй свои гиперпараметры, наборы данных и контрольные точки модели, а также визуализируй предсказания модели с помощью Comet Custom Panels!

Кроме того, Comet гарантирует, что ты никогда не потеряешь контроль над своей работой, и позволяет легко делиться результатами и сотрудничать в командах любого размера!

YOLOv5 это отличная отправная точка для твоего путешествия по компьютерному зрению. Чтобы улучшить работу твоей модели и сделать ее пригодной для производства, тебе нужно будет регистрировать результаты в инструменте для отслеживания экспериментов, например Comet.

Интеграция Comet и YOLOv5 предлагает 3 основные возможности:

  • Автоматическое ведение журнала и пользовательские функции ведения журнала
  • Сохраняй наборы данных и модели как артефакты для отладки и воспроизводимости
  • Организуй свое представление с помощью пользовательских панелей Comet.


В этом руководстве мы расскажем о том, как использовать YOLOv5 с Comet.

Ну что, готов отслеживать свои эксперименты в режиме реального времени? Давай приступим!

Начало работы

1. Установи Comet

Pip install comet_ml

2. Настрой Comet учетные данные

Есть два способа настроить Comet с помощью YOLOv5.

Ты можешь либо задать свои учетные данные через переменные окружения, либо создать файл .comet.config в своей рабочей директории и задать свои учетные данные там.


Переменные окружения

export COMET_API_KEY=export COMET_PROJECT_NAME= # По умолчанию это будет 'yolov5'


Comet Файл конфигурации

[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'

3. Запустите сценарий тренировки

# Обучение YOLOv5s на COCO128 для 5 эпохspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

Вот и все!

Comet будет автоматически регистрировать твои гиперпараметры, аргументы командной строки, метрики обучения и проверки. Ты можешь визуализировать и анализировать свои прогоны в пользовательском интерфейсе Comet .

Эксперименты с YOLOv5 в Comet Dashboard

Попробуй сам!

Посмотри пример завершенного прогона здесь.

А еще лучше - попробуй сделать это сам в этом блокноте Colab Notebook.

Веди журнал автоматически

По умолчанию Comet будет записывать в журнал следующие элементы:

Метрика

  • Box Loss, Object Loss и Classification Loss для тренировочных и проверочных данных
  • метрики mAP_0.5, mAP_0.5:0.95 для валидационных данных
  • Precision и Recall для данных проверки

Параметры

  • Гиперпараметры модели
  • Все параметры, передаваемые через опции командной строки

Визуализации

  • Матрица запутанности предсказаний модели на данных проверки
  • Графики кривых PR и F1 для всех классов
  • Коррелограмма меток классов

Настройте ведение журнала Comet

Comet Можно настроить запись дополнительных данных в журнал с помощью флагов командной строки, передаваемых в тренировочный скрипт, или переменных окружения.

export COMET_MODE=online # Установи, в каком режиме запускать Comet - "онлайн" или "оффлайн". По умолчанию onlineexport COMET_MODEL_NAME= # Задай имя для сохраненной модели. По умолчанию yolov5export COMET_LOG_CONFUSION_MATRIX=false # Устанавливает отключение записи в журнал Comet матрицы запутанности. По умолчанию trueexport COMET_MAX_IMAGE_UPLOADS= # Контролирует, сколько всего прогнозов изображений нужно записать в журнал Comet. По умолчанию 100.export COMET_LOG_PER_CLASS_METRICS=true # Устанавливает, что в конце обучения нужно записывать в журнал метрики оценки для каждого обнаруженного класса. По умолчанию falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Установи это, если ты хочешь возобновить тренировку с другой контрольной точки. По умолчанию 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Установи это, если ты хочешь регистрировать метрики тренировки на уровне партии. По умолчанию false.export COMET_LOG_PREDICTIONS=true # Установи значение false, чтобы отключить журналирование предсказаний модели.

Регистрация контрольных точек с Comet

По умолчанию запись моделей в журнал Comet отключена. Чтобы включить его, передай аргумент save-period скрипту тренировки. Это позволит сохранять зарегистрированные контрольные точки на Comet в соответствии с интервалом, заданным параметром save-period.

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128.yaml \

--weights yolov5s.pt \

--save-period 1

Предсказания модели логгинга

По умолчанию предсказания модели (изображения, метки истинности и ограничительные рамки) будут записываться в журнал Comet. Ты можешь управлять частотой записи предсказаний в журнал и связанных с ними изображений, передавая аргумент командной строки bbox_interval. Прогнозы можно визуализировать с помощью Comet'Object Detection Custom Panel'. Эта частота соответствует каждому N-му пакету данных за эпоху. В примере ниже мы регистрируем каждую 2-ю порцию данных для каждой эпохи.

Примечание: Загрузчик данных проверки YOLOv5 по умолчанию использует размер партии 32, поэтому тебе придется настроить частоту регистрации соответствующим образом.

Вот пример проекта, в котором используется панель.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 2

Управление количеством изображений предсказаний, зарегистрированных на сайте Comet

При регистрации предсказаний с сайта YOLOv5, Comet будут регистрироваться изображения, связанные с каждым набором предсказаний. По умолчанию в журнал записывается максимум 100 изображений для проверки. Ты можешь увеличить или уменьшить это число с помощью переменной окружения COMET_MAX_IMAGE_UPLOADS.

env COMET_MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1

Регистрация показателей уровня класса

Используй переменную окружения COMET_LOG_PER_CLASS_METRICS, чтобы записать в журнал mAP, precision, recall и f1 для каждого класса.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt

Загрузка набора данных на Comet Artifacts

Если ты хочешь хранить свои данные с помощью Comet Artifacts, ты можешь сделать это с помощью флага upload_dataset.

Набор данных организован так, как описано в документацииYOLOv5 . Yaml-файл dataset config должен иметь тот же формат, что и файл coco128.yaml.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--upload_dataset

Загруженный набор данных ты можешь найти на вкладке "Артефакты" в своем рабочем пространстве Comet .

Comet Вкладка "Артефакты", YOLOv5

Ты можешь предварительно просмотреть данные прямо в пользовательском интерфейсе Comet .

Предварительный просмотр данных в Comet, YOLOv5

Артефакты версионируются, а также поддерживают добавление метаданных о наборе данных. Comet будет автоматически регистрировать метаданные из твоего yaml-файла набора данных.

Метаданные журнала из YAML-файла в Comet, YOLOv5

Использование сохраненного артефакта

Если ты хочешь использовать набор данных из Comet Artifacts, установи переменную path в своем yaml-файле dataset, чтобы она указывала на следующий URL ресурса Artifact.

# содержимое пути к файлу artifact.yaml: "comet:///:"

Затем передай этот файл своему тренировочному скрипту следующим образом:

python train.py \--img 640 \--batch 16 \--epochs 5 \--data artifact.yaml \--weights yolov5s.pt

Артефакты также позволяют тебе проследить за тем, как данные проходят через твой рабочий процесс Experimentation. Здесь ты можешь увидеть график, который показывает все эксперименты, в которых использовался загруженный тобой набор данных.

Comet Рабочий процесс экспериментов, YOLOv5

Возобновление тренировочного забега

Если твоя тренировочная пробежка прервалась по какой-либо причине, например, из-за разрыва интернет-соединения, ты можешь возобновить ее с помощью флага resume и страницы Comet Run Path.

Run Path имеет следующий формат comet:////.

Это вернет прогон в состояние, в котором он находился до прерывания, включая восстановление модели из контрольной точки, восстановление всех гиперпараметров и аргументов обучения, а также загрузку артефактов набора данных Comet , если они использовались в исходном прогоне. Возобновленный прогон будет продолжать вести логи в существующем эксперименте в пользовательском интерфейсе Comet .

python train.py \--resume "comet://"

Поиск гиперпараметров с помощью оптимизатора Comet

YOLOv5 Он также интегрирован с Comet's Optimizer, что упрощает визуализацию гиперпараметрических разверток в пользовательском интерфейсе Comet .

Настройка оптимизатора

Чтобы настроить Comet Optimizer, тебе придется создать JSON-файл с информацией о развертке.

Пример файла был предоставлен в:

utils/loggers/comet/optimizer_config.json python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

Скрипт hpo.py принимает те же аргументы, что и train.py. Если ты хочешь передать дополнительные аргументы своей зачистке, просто добавь их после скрипта.

python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \--save-period 1 \--bbox_interval 1

Параллельное выполнение зачистки

comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"

Comet предоставляет множество способов визуализировать результаты твоей зачистки. Посмотри на проект с завершенной зачисткой здесь:

Визуализируй результаты развертки на сайте Comet, YOLOv5

Оставайся на связи

Начни использовать нашу интеграцию с Comet для управления, визуализации и оптимизации твоих моделей YOLOv5 - от тренировочных прогонов до мониторинга производства.

И, конечно же, присоединяйся к сообществуUltralytics - месту, где можно задавать вопросы и делиться советами по обучению, проверке и внедрению YOLOv5 .

Логотип FacebookЛоготип ТвиттераЛоготип LinkedInСимвол копирования-ссылки

Читайте больше в этой категории

Давай вместе построим будущее
искусственного интеллекта!

Начни свое путешествие с будущим машинного обучения