Узнай, как Ultralytics сотрудничает с Comet для Ultralytics YOLOv5 оптимизации моделей: отслеживание в реальном времени, оптимизированное сотрудничество и улучшенная воспроизводимость.
На Ultralytics мы на коммерческой основе сотрудничаем с другими стартапами, которые помогают нам финансировать исследования и разработку наших потрясающих инструментов с открытым исходным кодом, таких как YOLOv5, чтобы они оставались бесплатными для всех. Эта статья может содержать партнерские ссылки на этих партнеров.
Наш новый партнер, Cometсоздает инструменты, которые помогают ученым, инженерам и руководителям команд ускорять и оптимизировать модели машинного обучения и глубокого обучения.
Comet это мощный инструмент для отслеживания твоих моделей, наборов данных и метрик. Он даже записывает в лог твои системные переменные и переменные окружения, чтобы обеспечить воспроизводимость и беспроблемную отладку каждого запуска. Это как виртуальный помощник, который волшебным образом знает, какие заметки нужно вести. Отслеживай и визуализируй показатели модели в реальном времени, сохраняй свои гиперпараметры, наборы данных и контрольные точки модели, а также визуализируй предсказания модели с помощью Comet Custom Panels!
Кроме того, 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 Notebook.
По умолчанию 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 отключена. Чтобы включить его, передай аргумент 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
При регистрации предсказаний с сайта 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, ты можешь сделать это с помощью флага 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 .
Артефакты версионируются, а также поддерживают добавление метаданных о наборе данных. Comet будет автоматически регистрировать метаданные из твоего yaml-файла набора данных.
Если ты хочешь использовать набор данных из 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. Здесь ты можешь увидеть график, который показывает все эксперименты, в которых использовался загруженный тобой набор данных.
Если твоя тренировочная пробежка прервалась по какой-либо причине, например, из-за разрыва интернет-соединения, ты можешь возобновить ее с помощью флага resume и страницы Comet Run Path.
Run Path имеет следующий формат comet:////.
Это вернет прогон в состояние, в котором он находился до прерывания, включая восстановление модели из контрольной точки, восстановление всех гиперпараметров и аргументов обучения, а также загрузку артефактов набора данных Comet , если они использовались в исходном прогоне. Возобновленный прогон будет продолжать вести логи в существующем эксперименте в пользовательском интерфейсе Comet .
python train.py \--resume "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 - от тренировочных прогонов до мониторинга производства.
И, конечно же, присоединяйся к сообществуUltralytics - месту, где можно задавать вопросы и делиться советами по обучению, проверке и внедрению YOLOv5 .
Начни свое путешествие с будущим машинного обучения