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

Узнайте, как Ultralytics сотрудничает с Comet для оптимизации модели Ultralytics YOLOv5: отслеживание в реальном времени, упрощенное сотрудничество и улучшенная воспроизводимость.
В Ultralytics мы на коммерческой основе сотрудничаем с другими стартапами, которые помогают нам финансировать исследования и разработку наших замечательных инструментов с открытым исходным кодом, таких как YOLOv5, чтобы они оставались бесплатными для всех. Эта статья может содержать партнерские ссылки на этих партнеров.
Наш новый партнер, компания Comet, создает инструменты, которые помогают ученым, инженерам и руководителям групп ускорить и оптимизировать модели машинного обучения и глубокого обучения.
Comet - это мощный инструмент для отслеживания ваших моделей, наборов данных и метрик. Он даже регистрирует системные переменные и переменные окружения, чтобы обеспечить воспроизводимость и отладку каждого запуска. Это как виртуальный помощник, который волшебным образом знает, какие заметки нужно сохранить. Отслеживайте и визуализируйте показатели модели в реальном времени, сохраняйте гиперпараметры, наборы данных и контрольные точки модели, а также визуализируйте предсказания модели с помощью пользовательских панелей Comet!
Кроме того, Comet гарантирует, что вы никогда не потеряете контроль над своей работой, и позволяет легко обмениваться результатами и сотрудничать с командами любого размера!
YOLOv5 - это отличная отправная точка в вашем путешествии по компьютерному зрению. Чтобы улучшить работу модели и сделать ее готовой к производству, вам нужно будет регистрировать результаты в инструменте для отслеживания экспериментов, таком как Comet.
Интеграция Comet и YOLOv5 предлагает 3 основные функции:
В этом руководстве мы расскажем о том, как использовать YOLOv5 с Comet.
Ну что, готовы отслеживать свои эксперименты в режиме реального времени? Давайте начнем!
Pip install comet_ml
Существует два способа настройки Comet с YOLOv5.
Вы можете задать свои учетные данные через переменные окружения или создать файл .comet.config в рабочем каталоге и задать их там.
export COMET_API_KEY=export COMET_PROJECT_NAME= # По умолчанию это будет 'yolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Обучение YOLOv5s на COCO128 для 5 эпохspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt
Вот и все!
Comet автоматически регистрирует гиперпараметры, аргументы командной строки, метрики обучения и проверки. Вы можете визуализировать и анализировать свои прогоны в пользовательском интерфейсе Comet.
Посмотрите пример выполненной работы здесь.
А еще лучше - попробуйте сами в этом блокноте Colab.
По умолчанию Comet регистрирует следующие данные:
Comet можно настроить на регистрацию дополнительных данных с помощью флагов командной строки, передаваемых в сценарий обучения, или переменных среды.
export COMET_MODE=online # Установите, в каком режиме запускать Comet - 'online' или 'offline'. По умолчанию 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 отключена. Чтобы включить ее, передайте аргумент 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 "Обнаружение объектов". Эта частота соответствует каждому N-му пакету данных за эпоху. В примере ниже мы регистрируем каждую вторую партию данных для каждой эпохи.
Примечание: Загрузчик данных проверки YOLOv5 по умолчанию имеет размер партии 32, поэтому вам придется установить соответствующую частоту регистрации.
Вот пример проекта с использованием панели.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 2
При регистрации прогнозов из 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, вы можете сделать это с помощью флага upload_dataset.
Набор данных организован так, как описано в документации YOLOv5. Конфигурационный yaml-файл набора данных должен иметь тот же формат, что и файл coco128.yaml.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--upload_dataset
Загруженный набор данных можно найти на вкладке "Артефакты" в рабочей области Comet.
Вы можете просматривать данные непосредственно в пользовательском интерфейсе Comet.
Артефакты версионируются и также поддерживают добавление метаданных о наборе данных. Comet будет автоматически регистрировать метаданные из вашего yaml-файла набора данных.
Если вы хотите использовать набор данных из Comet Artifacts, задайте переменную path в yaml-файле набора данных, чтобы она указывала на следующий URL-адрес ресурса Artifact.
# содержимое файла artifact.yaml Путь: "comet:///:"
Затем передайте этот файл вашему обучающему скрипту следующим образом:
python train.py \--img 640 \--batch 16 \--epochs 5 \--data artifact.yaml \--weights yolov5s.pt
Артефакты также позволяют отслеживать историю данных по мере их прохождения через рабочий процесс Experimentation. Здесь вы можете увидеть график, показывающий все эксперименты, в которых использовался загруженный вами набор данных.
Если ваша тренировка прервалась по какой-либо причине, например, из-за разрыва соединения с Интернетом, вы можете возобновить ее, используя флаг возобновления и Comet Run Path.
Путь выполнения имеет следующий формат comet:////.
Это восстановит выполнение до состояния, предшествовавшего прерыванию, включая восстановление модели из контрольной точки, восстановление всех гиперпараметров и аргументов обучения, а также загрузку артефактов набора данных Comet, если они использовались в исходном выполнении. Возобновленный запуск продолжит регистрироваться в существующем эксперименте в пользовательском интерфейсе Comet.
python train.py \--resume "comet://"
YOLOv5 также интегрирован с оптимизатором Comet, что упрощает визуализацию разверток гиперпараметров в пользовательском интерфейсе 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 - от тренировочных прогонов до мониторинга производства.
И, конечно, присоединяйтесь к сообществу Ultralytics - месту, где можно задать вопросы и поделиться советами по обучению, проверке и внедрению YOLOv5.