Улучшение процесса обучения YOLO26: упрости ведение логов с помощью Comet#
Логирование ключевых деталей обучения, таких как параметры, метрики, предсказания изображений и контрольные точки модели, имеет важное значение в машинном обучении — это обеспечивает прозрачность проекта, измеримость прогресса и воспроизводимость результатов.
Watch: How to Use Comet for Ultralytics YOLO Model Training Logs and Metrics 🚀
Ultralytics YOLO26 легко интегрируется с Comet (ранее Comet ML), эффективно фиксируя и оптимизируя каждый аспект процесса обучения твоей модели обнаружения объектов YOLO26. В этом руководстве мы рассмотрим процесс установки, настройку Comet, аналитику в реальном времени, пользовательское логирование и офлайн-использование, гарантируя, что обучение YOLO26 будет тщательно задокументировано и настроено для достижения выдающихся результатов.
Comet#
Comet — это платформа для отслеживания, сравнения, объяснения и оптимизации моделей и экспериментов машинного обучения. Она позволяет логировать метрики, параметры, медиаданные и многое другое во время обучения модели, а также следить за экспериментами через удобный веб-интерфейс. Comet помогает дата-саентистам быстрее проводить итерации, повышает прозрачность и воспроизводимость, а также способствует разработке продакшн-моделей.
Используй мощь YOLO26 и Comet#
Объединяя Ultralytics YOLO26 с Comet, ты получаешь ряд преимуществ. Сюда входят упрощённое управление экспериментами, аналитика в реальном времени для быстрых корректировок, гибкие возможности логирования и возможность записывать эксперименты в автономном режиме, когда доступ к интернету ограничен. Эта интеграция позволяет тебе принимать решения на основе данных, анализировать метрики производительности и добиваться исключительных результатов.
Установка#
Чтобы установить необходимые пакеты, выполни:
# Install YOLO26 and Comet
pip install ultralytics comet_mlНастройка Comet#
После установки необходимых пакетов тебе нужно зарегистрироваться, получить ключ API Comet и настроить его.
# Set your Comet API Key
export COMET_API_KEY=YOUR_API_KEYЗатем пройди аутентификацию в Comet. Коллбэк Ultralytics создаёт эксперимент и использует аргумент обучения YOLO project в качестве названия проекта Comet.
import comet_ml
comet_ml.login()Если ты используешь ноутбук Google Colab, приведённый выше код предложит тебе ввести API-ключ для инициализации.
Использование#
Прежде чем погружаться в инструкции по использованию, обязательно ознакомься с ассортиментом моделей YOLO26, предлагаемых Ultralytics. Это поможет тебе выбрать наиболее подходящую модель под требования твоего проекта.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train the model
results = model.train(
data="coco8.yaml",
project="comet-example-yolo26-coco128",
batch=32,
save_period=1,
save_json=True,
epochs=3,
)После запуска кода обучения Comet создаст эксперимент в твоем рабочем пространстве Comet для автоматического отслеживания запуска. Затем тебе будет предоставлена ссылка для просмотра подробного лога процесса обучения модели YOLO26.
Comet автоматически логирует следующие данные без дополнительной настройки: метрики, такие как mAP и потери, гиперпараметры, контрольные точки модели, интерактивную матрицу ошибок и предсказания ограничивающих рамок для изображений.
Понимание производительности твоей модели с помощью визуализаций Comet#
Давай разберёмся, что ты увидишь на панели инструментов Comet, как только твоя модель YOLO26 начнёт обучение. На этой панели происходит вся работа, она отображает ряд автоматически записанных данных с помощью графиков и статистики. Вот краткий обзор:
Панели экспериментов
Раздел панелей экспериментов в панели управления Comet упорядочивает и представляет различные запуски и их метрики, такие как потери маски сегмента, потери класса, точность и среднюю точность.
Metrics (Метрики)
В разделе метрик у тебя также есть возможность просматривать показатели в табличном формате, который отображается на специальной панели, как показано здесь.
Интерактивная матрица ошибок
Матрица ошибок, расположенная на вкладке Confusion Matrix, представляет собой интерактивный способ оценки точности классификации модели. В ней подробно описаны правильные и неправильные предсказания, что позволяет понять сильные и слабые стороны модели.
Системные метрики
Comet записывает системные метрики, чтобы помочь выявить любые узкие места в процессе обучения. Сюда входят такие показатели, как использование GPU, использование памяти GPU, нагрузка на CPU и использование оперативной памяти. Они важны для мониторинга эффективности использования ресурсов во время обучения модели.
Настройка логирования Comet#
Comet предлагает гибкость в настройке поведения логирования путём установки переменных окружения. Эти конфигурации позволяют тебе настроить Comet под свои специфические нужды и предпочтения. Колбэк Ultralytics считывает следующие переменные окружения (установи их до начала обучения):
| Переменная окружения | По умолчанию | Описание |
|---|---|---|
COMET_START_ONLINE | 1 | Запусти эксперимент в онлайн (1) или офлайн (0) режиме. |
COMET_PROJECT_NAME | args.project | Проект в рабочем пространстве Comet. Если значение не задано, используется аргумент обучения YOLO project. |
COMET_MODEL_NAME | Ultralytics | Имя, зарегистрированное для залогированного артефакта модели. |
COMET_MAX_IMAGE_PREDICTIONS | 100 | Общее количество предсказаний на изображениях валидации для записи за один запуск. |
COMET_EVAL_BATCH_LOGGING_INTERVAL | 1 | Записывать предсказания на изображениях каждый N-й валидационный батч. |
COMET_EVAL_LOG_IMAGE_PREDICTIONS | true | Включить (true) или выключить (false) логирование предсказаний изображений. |
COMET_EVAL_LOG_CONFUSION_MATRIX | false | Записывать матрицу ошибок на каждой эпохе валидации. Финальная матрица всегда записывается в конце обучения. |
COMET_MAX_CONFIDENCE_SCORE | 100.0 | Множитель, применяемый к оценкам уверенности (confidence scores) перед записью (интерфейс Comet ожидает процентную шкалу). |
COMET_MODE (устарело) | online | Устаревший псевдоним COMET_START_ONLINE ("online" ↔ 1, "offline" ↔ 0). Выводит предупреждение об устаревании. |
Для логических переключателей (COMET_EVAL_LOG_IMAGE_PREDICTIONS и COMET_EVAL_LOG_CONFUSION_MATRIX) значения 1, true, yes, on, y и t распознаются как True (без учета регистра). Любое другое значение интерпретируется как False.
Логирование предсказаний на изображениях#
Ты можешь контролировать количество предсказаний на изображениях, которые Comet записывает во время твоих экспериментов. По умолчанию Comet записывает 100 предсказаний из валидационного набора. Однако ты можешь изменить это число, чтобы лучше соответствовать своим требованиям. Например, чтобы записать 200 предсказаний, используй следующий код:
import os
os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200"Чтобы полностью отключить логирование предсказаний изображений (например, для уменьшения объема выгрузки при медленном соединении), установи для COMET_EVAL_LOG_IMAGE_PREDICTIONS значение "false":
import os
os.environ["COMET_EVAL_LOG_IMAGE_PREDICTIONS"] = "false"Интервал записи батчей#
Comet позволяет указывать, как часто логируются батчи предсказаний изображений. За эту частоту отвечает переменная окружения COMET_EVAL_BATCH_LOGGING_INTERVAL. Значение по умолчанию — 1, что означает логирование предсказаний из каждого батча валидации. Ты можешь изменить это значение, чтобы логировать предсказания с другим интервалом. Например, установив его равным 4, ты будешь логировать предсказания из каждого четвертого батча.
import os
os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4"Отключение записи матрицы ошибок#
В некоторых случаях тебе может не потребоваться логировать матрицу ошибок из набора валидации после каждой эпохи. Ты можешь отключить эту функцию, установив для переменной окружения COMET_EVAL_LOG_CONFUSION_MATRIX значение «false». Матрица ошибок будет залогирована только один раз, после завершения обучения.
import os
os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false"Онлайн и офлайн режимы#
По умолчанию Comet работает в онлайн-режиме и передает данные экспериментов на серверы Comet. Если тебе нужно проводить обучение без доступа к интернету, установи COMET_START_ONLINE=0 перед началом обучения. Данные эксперимента сохраняются локально и могут быть загружены позже с помощью CLI comet upload.
import os
os.environ["COMET_START_ONLINE"] = "0" # 1 (default) = online, 0 = offlineВ более ранних версиях для этого использовалась переменная COMET_MODE="offline". Эта переменная по-прежнему поддерживается для обратной совместимости, но выводит предупреждение об устаревании. В дальнейшем используй COMET_START_ONLINE.
Имя проекта#
По умолчанию обратный вызов Comet передает аргумент обучения YOLO project в Comet (или None, если аргумент не задан; в этом случае Comet использует значение по умолчанию для твоего рабочего пространства). Переопредели это с помощью COMET_PROJECT_NAME, чтобы отправлять все эксперименты в определенный проект рабочего пространства Comet независимо от аргумента обучения YOLO:
import os
os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments"Имя артефакта модели#
COMET_MODEL_NAME задает имя, под которым Comet регистрирует залогированный артефакт модели (по умолчанию Ultralytics). Используй его для различения вариантов моделей в общем рабочем пространстве:
import os
os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"Масштабирование оценки уверенности#
Оценки уверенности детекции выводятся в диапазоне [0, 1], но по умолчанию интерфейс Comet отображает их в процентах. Обратный вызов умножает каждую оценку на COMET_MAX_CONFIDENCE_SCORE (по умолчанию 100.0) перед логированием. Настрой это, если предпочитаешь «сырые» вероятности или другую шкалу:
import os
os.environ["COMET_MAX_CONFIDENCE_SCORE"] = "1.0" # log raw [0, 1] scoresРезюме#
Это руководство провело тебя через процесс интеграции Comet с YOLO26 от Ultralytics. От установки до кастомизации, ты научился упрощать управление экспериментами, получать аналитику в реальном времени и адаптировать логирование под нужды своего проекта.
Ознакомься с официальной документацией по интеграции YOLOv8 с Comet, которая также применима к проектам на YOLO26.
Кроме того, если ты хочешь глубже погрузиться в практическое применение YOLO26, в частности для задач сегментации изображений, это подробное руководство по тонкой настройке YOLO26 с помощью Comet предлагает ценные сведения и пошаговые инструкции для повышения производительности твоей модели.
Кроме того, чтобы ознакомиться с другими интересными интеграциями с Ultralytics, загляни на страницу руководства по интеграции, которая предлагает множество ресурсов и информации.
FAQ#
Чтобы интегрировать Comet с Ultralytics YOLO26, выполни следующие шаги:
-
Установи необходимые пакеты:
pip install ultralytics comet_ml -
Настрой свой API-ключ Comet:
export COMET_API_KEY=YOUR_API_KEY -
Пройди аутентификацию в Comet в своём коде Python:
import comet_ml comet_ml.login() -
Обучай свою модель YOLO26 и логируй метрики:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.train( data="coco8.yaml", project="comet-example-yolo26-coco128", batch=32, save_period=1, save_json=True, epochs=3, )
Для получения более подробных инструкций обратись к разделу настройки Comet.
-
Интегрируя Ultralytics YOLO26 с Comet, ты можешь:
- Мониторить аналитику в реальном времени: получай мгновенную обратную связь о результатах обучения, что позволяет быстро вносить коррективы.
- Логировать обширные метрики: автоматически фиксируй важные показатели, такие как mAP, потери, гиперпараметры и чекпоинты моделей.
- Отслеживать эксперименты офлайн: записывай запуски обучения локально, когда доступ к интернету недоступен.
- Сравнивать различные запуски обучения: используй интерактивный дашборд Comet для анализа и сравнения нескольких экспериментов.
Используя эти функции, ты можешь оптимизировать свои рабочие процессы машинного обучения для повышения производительности и воспроизводимости. Для получения дополнительной информации посети руководство по интеграции Comet.
Comet позволяет обширно настраивать поведение логирования с помощью переменных окружения:
-
Изменение количества записанных предсказаний на изображениях:
import os os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200" -
Настройка интервала логирования батчей:
import os os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4" -
Отключение логирования матрицы ошибок:
import os os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false" -
Установка имени проекта Comet:
import os os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments" -
Установка имени записанного артефакта модели:
import os os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"
См. раздел Настройка логирования Comet для получения полного списка, включая переключатели предсказаний изображений, масштабирование оценок уверенности и онлайн/офлайн-режим.
-
Как только твоя модель YOLO26 начнёт обучение, ты получишь доступ к широкому спектру метрик и визуализаций на дашборде Comet. Основные функции включают:
- Панели экспериментов: просмотр различных запусков и их метрик, включая потери маски сегмента, потери класса и среднюю точность.
- Метрики: изучай показатели в табличном формате для детального анализа.
- Интерактивная матрица ошибок: оценивай точность классификации с помощью интерактивной матрицы ошибок.
- Системные метрики: отслеживай использование GPU и CPU, потребление памяти и другие системные показатели.
Для подробного обзора этих функций посети раздел Понимание производительности модели с помощью визуализации в Comet.
Да. Установи
COMET_START_ONLINE=0перед началом обучения для локального логирования:import os os.environ["COMET_START_ONLINE"] = "0"Данные эксперимента сохраняются на диске и могут быть загружены в Comet позже с помощью CLI
comet upload, когда появится связь. Более старая переменнаяCOMET_MODE="offline"все еще работает, но выдает предупреждение об устаревании. Для получения более подробной информации см. раздел Онлайн и офлайн-режим.