Meet YOLO26: next-gen vision AI.

Link to this sectionОбучение моделей с помощью Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Link to this sectionВведение#

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



Watch: How to Train a YOLO model on Your Custom Dataset in Google Colab.

Link to this sectionПочему стоит выбрать Ultralytics YOLO для обучения?#

Вот несколько веских причин выбрать режим Train в YOLO26:

  • Эффективность: Получи максимум от своего оборудования, будь то система с одним GPU или масштабируемое решение на базе нескольких GPU.
  • Универсальность: Обучай на собственных наборах данных в дополнение к уже доступным, таким как COCO, VOC и ImageNet.
  • Удобство для пользователя: Простые, но мощные интерфейсы CLI и Python для легкого процесса обучения.
  • Гибкость гиперпараметров: Широкий спектр настраиваемых гиперпараметров для точной подстройки производительности модели. Для более глубокого контроля ты можешь настроить сам тренер.
  • Облачное обучение: Обучай на облачных GPU через Ultralytics Platform с метриками в реальном времени и автоматическим сохранением контрольных точек.

Link to this sectionОсновные функции режима Train#

Ниже представлены некоторые примечательные функции режима Train в YOLO26:

  • Автоматическая загрузка датасетов: Стандартные наборы данных, такие как COCO, VOC и ImageNet, загружаются автоматически при первом использовании.
  • Поддержка нескольких GPU: Беспрепятственно масштабируй свои усилия по обучению на несколько GPU, чтобы ускорить процесс.
  • Конфигурация гиперпараметров: Возможность изменять гиперпараметры через YAML-файлы конфигурации или аргументы CLI.
  • Визуализация и мониторинг: Отслеживание метрик обучения в реальном времени и визуализация процесса для получения более глубоких данных.
Совет
  • Датасеты YOLO26, такие как COCO, VOC, ImageNet и многие другие, автоматически загружаются при первом использовании, например: yolo train data=coco.yaml

Link to this sectionПримеры использования#

Обучи YOLO26n на датасете COCO8 в течение 100 эпох при размере изображения 640. Устройство для обучения можно указать с помощью аргумента device. Если аргумент не передан, при наличии будет использован GPU device=0, в противном случае будет использован device='cpu'. Полный список аргументов обучения см. в разделе «Аргументы» ниже.

Ошибка многопроцессорности в Windows

В Windows ты можешь получить RuntimeError при запуске обучения в качестве скрипта. Добавь блок if __name__ == "__main__": перед кодом обучения, чтобы устранить эту проблему.

Пример обучения на одном GPU или CPU

Устройство определяется автоматически. Если доступен GPU, он будет использован (по умолчанию CUDA устройство 0); в противном случае обучение начнется на CPU.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.yaml")  # build a new model from YAML
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this sectionОбучение на нескольких GPU#

Обучение на нескольких GPU позволяет более эффективно использовать доступные аппаратные ресурсы, распределяя нагрузку между ними. Эта функция доступна как через Python API, так и через командную строку. Чтобы включить обучение на нескольких GPU, укажи ID используемых устройств GPU.

Пример обучения на нескольких GPU

Для обучения с использованием 2 GPU (устройства CUDA 0 и 1) используй следующие команды. При необходимости расширяй список дополнительных GPU.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

# Train the model with the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])
Обучение на нескольких GPU с использованием пользовательского кода

Когда ты указываешь несколько устройств (например, device=[0, 1]), Ultralytics внутренне создает новый экземпляр тренера и выполняет torch.distributed.run «под капотом». Это отлично работает для стандартного использования CLI и неизмененных Python-скриптов.

Однако если твой скрипт содержит пользовательские компоненты — например, кастомный тренер, валидатор, датасет или конвейер аугментации — эти объекты не могут быть автоматически сериализованы и переданы в подпроцессы DDP. В этом случае ты должен запустить свой скрипт напрямую через torch.distributed.run:

python -m torch.distributed.run --nproc_per_node 2 your_training_script.py

Link to this sectionОбучение на простаивающем GPU#

Обучение на простаивающем GPU обеспечивает автоматический выбор наименее загруженных GPU в многопроцессорных системах, оптимизируя использование ресурсов без ручного выбора. Эта функция определяет доступные GPU на основе метрик загрузки и доступной видеопамяти (VRAM).

Пример обучения на простаивающем GPU

Чтобы автоматически выбирать и использовать наиболее простаивающий GPU (или GPU) для обучения, используй параметр устройства -1. Это особенно полезно в общих вычислительных средах или на серверах с несколькими пользователями.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train using the single most idle GPU
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=-1)

# Train using the two most idle GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[-1, -1])

Алгоритм автовыбора отдает приоритет GPU с:

  1. Более низким текущим процентом использования
  2. Большим объемом доступной памяти (свободная VRAM)
  3. Более низкой температурой и энергопотреблением

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

Link to this sectionОбучение на Apple Silicon MPS#

Благодаря поддержке чипов Apple Silicon, интегрированной в модели Ultralytics YOLO, теперь можно обучать свои модели на устройствах, использующих мощный фреймворк Metal Performance Shaders (MPS). MPS предлагает высокопроизводительный способ выполнения вычислений и задач обработки изображений на специализированных чипах Apple.

Чтобы включить обучение на чипах Apple Silicon, при запуске процесса обучения тебе следует указать 'mps' в качестве устройства. Ниже приведен пример того, как ты можешь это сделать в Python и через командную строку:

Пример обучения MPS
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Использование вычислительной мощности чипов Apple Silicon позволяет эффективнее выполнять задачи обучения. Для получения более подробных инструкций и расширенных вариантов конфигурации, пожалуйста, обратись к документации PyTorch MPS.

Link to this sectionВозобновление прерванного обучения#

Возобновление обучения из ранее сохраненного состояния — критически важная функция при работе с моделями глубокого обучения. Это может пригодиться в различных сценариях: например, когда процесс обучения был неожиданно прерван или когда ты хочешь продолжить обучение модели на новых данных или в течение большего количества эпох.

При возобновлении обучения Ultralytics YOLO загружает веса из последней сохраненной модели, а также восстанавливает состояние оптимизатора, планировщика скорости обучения и номер эпохи. Это позволяет тебе беспрепятственно продолжить процесс обучения с того места, где он был остановлен.

Ты можешь легко возобновить обучение в Ultralytics YOLO, установив аргумент resume в значение True при вызове метода train и указав путь к файлу .pt, содержащему веса частично обученной модели.

Ниже приведен пример того, как возобновить прерванное обучение с помощью Python и через командную строку:

Пример возобновления обучения
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)

Установив resume=True, функция train продолжит обучение с того места, где она остановилась, используя состояние, сохраненное в файле 'path/to/last.pt'. Если аргумент resume опущен или установлен в False, функция train начнет новый сеанс обучения.

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

Link to this sectionНастройки обучения#

Настройки обучения для моделей YOLO включают в себя различные гиперпараметры и конфигурации, используемые в процессе обучения. Эти настройки влияют на производительность, скорость и точность модели. Ключевые настройки обучения включают размер пакета (batch size), скорость обучения, импульс (momentum) и затухание весов (weight decay). Кроме того, выбор оптимизатора, функции потерь и состав обучающего набора данных могут повлиять на процесс обучения. Тщательная настройка и эксперименты с этими параметрами имеют решающее значение для оптимизации производительности.

Link to this sectionОптимизатор MuSGD#

В YOLO26 MuSGD — это гибридный оптимизатор, который объединяет стандартные обновления SGD с ортогонализированными обновлениями в стиле Muon.

Он рекомендуется для более длительных циклов обучения YOLO26 и больших наборов данных, где ортогонализированные обновления Muon помогают стабилизировать оптимизацию.

Только параметры с param.ndim >= 2 (такие как веса свертки) получают обновление в стиле Muon вместе с SGD, в то время как параметры с более низкой размерностью, такие как слои пакетной нормализации и члены смещения (bias), остаются на стандартном SGD.

Когда используется optimizer=auto, Ultralytics автоматически выбирает MuSGD для более длительных циклов обучения (обычно когда итераций > 10000). Для более коротких циклов тренер возвращается к AdamW.

Пример использования:

yolo train model=yolo26n.pt data=coco8.yaml optimizer=MuSGD

Смотри реализацию в ultralytics/optim/muon.py и логику автовыбора оптимизатора в BaseTrainer.build_optimizer.

АргументТипПо умолчаниюОписание
modelstrNoneУказывает файл модели для обучения. Принимает путь либо к предварительно обученной модели .pt, либо к файлу конфигурации .yaml. Необходим для определения структуры модели или инициализации весов.
datastrNoneПуть к файлу конфигурации набора данных (например, coco8.yaml). Этот файл содержит специфические параметры датасета, включая пути к обучающим и валидационным данным, названия классов и количество классов.
epochsint100Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Настройка этого значения может повлиять на продолжительность обучения и производительность модели.
timefloatNoneМаксимальное время обучения в часах. Если установлено, это значение переопределяет аргумент epochs, позволяя обучению автоматически остановиться по истечении указанного времени. Полезно для сценариев обучения с ограниченным временем.
patienceint100Количество эпох, в течение которых метрики валидации не улучшаются, перед тем как остановить обучение (early stopping). Помогает предотвратить переобучение, останавливая процесс, когда производительность выходит на плато.
batchint или float16Размер пакета (Batch size) с тремя режимами: как целое число (например, batch=16), авторежим для 60% загрузки видеопамяти GPU (batch=-1) или авторежим с указанной долей использования (batch=0.70).
imgszint640Целевой размер изображения для обучения. Изображения меняют размер до квадратов со сторонами, равными указанному значению (если rect=False), сохраняя соотношение сторон для моделей YOLO, но не для RT-DETR. Влияет на точность модели и вычислительную сложность.
saveboolTrueВключает сохранение контрольных точек обучения и финальных весов модели. Полезно для возобновления обучения или развертывания модели.
save_periodint-1Периодичность сохранения контрольных точек модели в эпохах. Значение -1 отключает эту функцию. Полезно для сохранения промежуточных моделей во время длительных сеансов обучения.
cacheboolFalseВключает кэширование изображений датасета в памяти (True/ram), на диске (disk) или отключает его (False). Улучшает скорость обучения за счет уменьшения операций ввода-вывода (I/O) диска ценой увеличенного использования оперативной памяти.
deviceint или str или listNoneУказывает вычислительное устройство (или устройства) для обучения: один GPU (device=0), несколько GPU (device=[0,1]), CPU (device=cpu), MPS для Apple Silicon (device=mps), Huawei Ascend NPU (device=npu или device=npu:0), или автовыбор наиболее простаивающего GPU (device=-1) или нескольких простаивающих GPU (device=[-1,-1])
workersint8Количество потоков-воркеров для загрузки данных (на каждый RANK при обучении на нескольких GPU). Влияет на скорость предобработки данных и их передачи в модель; особенно полезно в конфигурациях с несколькими GPU.
projectstrNoneИмя директории проекта, куда сохраняются результаты обучения. Позволяет организованно хранить различные эксперименты.
namestrNoneИмя запуска обучения. Используется для создания подпапки внутри папки проекта, где хранятся логи и результаты обучения.
exist_okboolFalseЕсли True, разрешает перезапись существующей директории project/name. Полезно для итеративных экспериментов без необходимости вручную очищать предыдущие результаты.
pretrainedbool или strTrueОпределяет, начинать ли обучение с предварительно обученных весов. Может быть логическим значением или строковым путем к весам для загрузки. pretrained=False запускает обучение со случайной инициализацией весов при сохранении архитектуры модели.
optimizerstr'auto'Выбор оптимизатора для обучения. Опции включают SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp или auto для автоматического выбора на основе конфигурации модели. Влияет на скорость и стабильность сходимости.
seedint0Устанавливает случайное зерно (seed) для обучения, обеспечивая воспроизводимость результатов между запусками с одинаковыми конфигурациями.
deterministicboolTrueПринудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но это может повлиять на производительность и скорость из-за ограничений на недетерминированные алгоритмы.
verboseboolTrueВключает подробный вывод данных во время обучения, отображая индикаторы выполнения, метрики для каждой эпохи и дополнительную информацию об обучении в консоли.
single_clsboolFalseРассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда ты фокусируешься на наличии объекта, а не на его классификации.
classeslist[int]NoneЗадает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения.
rectboolFalseВключает стратегию минимального заполнения — изображения в пакете минимально дополняются до общего размера, при этом самая длинная сторона равна imgsz. Может улучшить эффективность и скорость, но может повлиять на точность модели.
multi_scalefloat0.0Случайное изменение imgsz для каждого пакета на +/- multi_scale (например, 0.25 -> от 0.75x до 1.25x), с округлением до кратных значений шага модели; 0.0 отключает многомасштабное обучение.
cos_lrboolFalseИспользует косинусный планировщик learning rate, корректируя скорость обучения по косинусоиде на протяжении эпох. Помогает управлять скоростью обучения для лучшей сходимости.
close_mosaicint10Отключает data augmentation типа mosaic в последние N эпох для стабилизации обучения перед завершением. Установка 0 отключает эту функцию.
resumeboolFalseВозобновляет обучение с последней сохраненной контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и счетчик эпох, продолжая обучение без сбоев.
ampboolTrueВключает обучение с автоматической Mixed Precision (AMP), уменьшая использование памяти и, возможно, ускоряя обучение при минимальном влиянии на точность.
fractionfloat1.0Указывает долю набора данных для использования при обучении. Позволяет обучать на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах.
profileboolFalseВключает профилирование скорости ONNX и TensorRT во время обучения, полезно для оптимизации развертывания модели.
freezeint или listNoneЗамораживает первые N слоев модели или указанные слои по индексу, уменьшая количество обучаемых параметров. Полезно для донастройки или transfer learning.
lr0float0.01Начальная скорость обучения (например, SGD=1E-2, Adam=1E-3). Настройка этого значения критически важна для процесса оптимизации, так как она влияет на то, насколько быстро обновляются веса модели.
lrffloat0.01Конечная скорость обучения как доля от начальной = (lr0 * lrf), используется вместе с планировщиками для корректировки скорости обучения с течением времени.
momentumfloat0.937Коэффициент импульса для SGD или beta1 для Adam optimizers, влияющий на учет прошлых градиентов при текущем обновлении.
weight_decayfloat0.0005Член L2 regularization, штрафующий большие веса для предотвращения переобучения.
warmup_epochsfloat3.0Количество эпох для разогрева (warmup) скорости обучения, постепенно увеличивающее ее от малого значения до начального для ранней стабилизации обучения.
warmup_momentumfloat0.8Начальный импульс для фазы разогрева, постепенно корректирующийся до установленного значения в течение периода разогрева.
warmup_bias_lrfloat0.1Скорость обучения для параметров смещения (bias) во время фазы разогрева, помогающая стабилизировать обучение модели в начальные эпохи.
boxfloat7.5Вес компонента функции потерь box в loss function, влияющий на акцент при точном прогнозировании координат bounding box.
clsfloat0.5Вес потерь классификации в общей функции потерь, влияющий на важность правильного предсказания класса по отношению к другим компонентам.
cls_pwfloat0.0Степень для весов классов для борьбы с их дисбалансом с использованием обратной частоты классов. 0.0 отключает взвешивание классов, 1.0 применяет полное обратное частотное взвешивание. Значения от 0 до 1 обеспечивают частичное взвешивание.
dflfloat1.5Вес функции распределения focal loss, используемой в определенных версиях YOLO для мелкозернистой классификации.
posefloat12.0Вес потерь позы в моделях для оценки позы, влияющий на акцент при точном прогнозировании ключевых точек позы.
kobjfloat1.0Вес потерь объектности ключевых точек в моделях оценки позы, балансирующий уверенность обнаружения с точностью позы.
rlefloat1.0Вес потерь остаточной оценки логарифмического правдоподобия в моделях оценки позы, влияющий на точность локализации ключевых точек.
anglefloat1.0Вес потерь угла в моделях obb, влияющий на точность предсказаний угла ориентированного ограничивающего прямоугольника.
nbsint64Номинальный размер пакета для нормализации потерь.
overlap_maskboolTrueОпределяет, должны ли маски объектов объединяться в одну общую маску для обучения или оставаться отдельными для каждого объекта. В случае перекрытия, меньшая маска накладывается поверх большей при объединении.
mask_ratioint4Коэффициент уменьшения разрешения (downsample) для масок сегментации, влияющий на разрешение масок, используемых при обучении.
dropoutfloat0.0Коэффициент исключения (dropout) для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения единиц во время обучения.
valboolTrueВключает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных.
plotsboolTrueГенерирует и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения.
compilebool или strFalseВключает компиляцию графа PyTorch 2.x torch.compile с backend='inductor'. Принимает True"default", False → отключает, или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается к режиму eager с предупреждением.
max_detint300Указывает максимальное количество объектов, сохраняемых во время фазы валидации обучения.
Примечание по настройкам размера пакета (Batch-size)

Аргумент batch можно настроить тремя способами:

  • Фиксированный Batch Size: Установи целочисленное значение (например, batch=16), напрямую указывая количество изображений в пакете.
  • Автоматический режим (60% памяти GPU): Используй batch=-1 для автоматической настройки размера пакета под примерно 60% использования памяти CUDA.
  • Автоматический режим с долей использования: Установи значение доли (например, batch=0.70), чтобы настроить размер пакета на основе указанной части использования памяти GPU.
  • Автоматический повтор при нехватке памяти (OOM): Если в первой эпохе возникает ошибка CUDA out-of-memory, трейнер автоматически делит размер пакета пополам и повторяет попытку (до 3 раз). Это применимо только к обучению на одной GPU; обучение на нескольких GPU (DDP) вызовет ошибку немедленно.

Link to this sectionНастройки аугментации и гиперпараметры#

Методы аугментации необходимы для повышения устойчивости и производительности моделей YOLO путем внесения вариативности в training data, что помогает модели лучше обобщать данные на ранее не виденных примерах. В следующей таблице описаны цель и эффект каждого аргумента аугментации:

АргументТипПо умолчаниюПоддерживаемые задачиДиапазонОписание
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Корректирует цветовой тон изображения на долю цветового круга, внося вариативность цветов. Помогает модели обобщать данные при различных условиях освещения.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Изменяет насыщенность изображения на долю, влияя на интенсивность цветов. Полезно для симуляции различных условий окружающей среды.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Модифицирует значение (яркость) изображения на долю, помогая модели хорошо работать при различных условиях освещения.
degreesfloat0detect, segment, pose, obb0.0 - 180Случайно поворачивает изображение в заданном диапазоне градусов, улучшая способность модели распознавать объекты в различных ориентациях.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Сдвигает изображение по горизонтали и вертикали на часть размера изображения, помогая учиться обнаруживать частично видимые объекты.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Масштабирует изображение с коэффициентом усиления, имитируя объекты на разном расстоянии от камеры.
shearfloat0detect, segment, pose, obb-180 - +180Наклоняет изображение на заданный градус, имитируя эффект просмотра объектов под разными углами.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Переворачивает изображение вверх ногами с заданной вероятностью, увеличивая вариативность данных, не затрагивая характеристики объекта.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Переворачивает изображение слева направо с заданной вероятностью, что полезно для изучения симметричных объектов и повышения разнообразия набора данных.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Меняет каналы изображения с RGB на BGR с заданной вероятностью, полезно для повышения устойчивости к неправильному порядку каналов.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Объединяет четыре изображения для обучения в одно, имитируя различные композиции сцен и взаимодействия объектов. Очень эффективно для понимания сложных сцен.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Смешивает два изображения и их метки, создавая составное изображение. Улучшает способность модели к обобщению за счет внесения шума в метки и визуальной вариативности.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Объединяет части двух изображений, создавая частичное смешение при сохранении отдельных областей. Повышает устойчивость модели за счет создания сценариев окклюзии.
copy_pastefloat0segment0.0 - 1.0Копирует и вставляет объекты между изображениями, чтобы увеличить количество экземпляров объектов.
copy_paste_modestrflipsegment-Указывает стратегию copy-paste. Доступные варианты: 'flip' и 'mixup'.
auto_augmentstrrandaugmentclassify-Применяет предопределенную политику аугментации ('randaugment', 'autoaugment' или 'augmix') для улучшения производительности модели за счет визуального разнообразия.
erasingfloat0.4classify0.0 - 1.0Случайным образом стирает области изображения во время обучения, чтобы побудить модель фокусироваться на менее очевидных признаках.
augmentationslist``detect, segment, pose, obb-Пользовательские преобразования Albumentations для продвинутой аугментации данных (только через Python API). Принимает список объектов преобразования для специализированных задач аугментации.

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

Информация

Для получения дополнительной информации об операциях аугментации при обучении см. справочный раздел.

Link to this sectionЛогирование#

При обучении модели YOLO26 тебе может быть полезно отслеживать производительность модели с течением времени. Здесь на помощь приходит логирование. Ultralytics YOLO обеспечивает поддержку трех типов логгеров: Comet, ClearML и TensorBoard.

Чтобы воспользоваться логгером, выбери его в выпадающем меню в приведенном выше фрагменте кода и запусти его. Выбранный логгер будет установлен и инициализирован.

Link to this sectionComet#

Comet — это платформа, которая позволяет специалистам по данным и разработчикам отслеживать, сравнивать, объяснять и оптимизировать эксперименты и модели. Она предоставляет такие функциональные возможности, как метрики в реальном времени, сравнение кода и отслеживание гиперпараметров.

Чтобы использовать Comet:

Пример
# pip install comet_ml
import comet_ml

comet_ml.init()

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

Link to this sectionClearML#

ClearML — это платформа с открытым исходным кодом, которая автоматизирует отслеживание экспериментов и помогает эффективно распределять ресурсы. Она создана для того, чтобы помочь командам более эффективно управлять, выполнять и воспроизводить свою работу в области ML.

Чтобы использовать ClearML:

Пример
# pip install clearml
import clearml

clearml.browser_login()

После запуска этого скрипта тебе нужно будет войти в свою учетную запись ClearML в браузере и аутентифицировать свой сеанс.

Link to this sectionTensorBoard#

TensorBoard — это инструментарий визуализации для TensorFlow. Он позволяет визуализировать граф TensorFlow, строить количественные метрики выполнения графа и отображать дополнительные данные, такие как изображения, которые проходят через него.

Чтобы использовать TensorBoard в Google Colab:

Пример
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Чтобы использовать TensorBoard локально, выполни команду ниже и просмотри результаты по адресу localhost:6006.

Пример
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

Это загрузит TensorBoard и направит его в директорию, где сохранены логи твоего обучения.

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

Link to this sectionFAQ#

Link to this sectionМожно ли обучаться без локального GPU?#

Да. Ultralytics Platform поддерживает облачное обучение с бесплатными кредитами для начала работы. Загрузи свой набор данных, выбери модель и GPU и обучайся прямо из браузера. Подробности см. в руководстве по облачному обучению.

Link to this sectionКак обучить модель обнаружения объектов с помощью Ultralytics YOLO26?#

Чтобы обучить модель обнаружения объектов с помощью Ultralytics YOLO26, ты можешь использовать либо Python API, либо CLI. Ниже приведен пример для обоих способов:

Пример обучения на одном GPU или CPU
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Для получения более подробной информации обратись к разделу Настройки обучения.

Link to this sectionКаковы ключевые особенности режима обучения Ultralytics YOLO26?#

Ключевые особенности режима обучения Ultralytics YOLO26 включают:

  • Автоматическая загрузка наборов данных: Автоматически загружает стандартные наборы данных, такие как COCO, VOC и ImageNet.
  • Поддержка нескольких GPU: Масштабируй обучение на несколько GPU для более быстрой обработки.
  • Конфигурация гиперпараметров: Настраивай гиперпараметры с помощью YAML-файлов или аргументов CLI.
  • Визуализация и мониторинг: Отслеживание метрик обучения в реальном времени для более глубокого анализа.

Эти функции делают обучение эффективным и адаптируемым под твои нужды. Для получения более подробной информации см. раздел Ключевые особенности режима обучения.

Link to this sectionКак возобновить обучение после прерванного сеанса в Ultralytics YOLO26?#

Чтобы возобновить обучение после прерванного сеанса, установи аргумент resume в значение True и укажи путь к последней сохраненной контрольной точке (checkpoint).

Пример возобновления обучения
from ultralytics import YOLO

# Load the partially trained model
model = YOLO("path/to/last.pt")

# Resume training
results = model.train(resume=True)

Ознакомься с разделом Возобновление прерванного обучения для получения дополнительной информации.

Link to this sectionКак обучить модель на несбалансированном наборе данных?#

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

Аргумент cls_pw управляет силой взвешивания классов на основе обратной частоты классов:

  • cls_pw=0.0 (по умолчанию): отключает взвешивание классов
  • cls_pw=1.0: применяет полное взвешивание по обратной частоте
  • Значения от 0.0 до 1.0: обеспечивают частичное взвешивание для умеренного дисбаланса

Веса классов вычисляются как (1.0 / class_counts) ^ cls_pw и нормализуются так, чтобы их среднее значение было равно 1.0.

Обучение на несбалансированном наборе данных
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train with full class weighting for severely imbalanced data
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=1.0)

# Or use partial weighting (0.25) for moderate imbalance
results = model.train(data="custom.yaml", epochs=100, imgsz=640, cls_pw=0.25)
Совет

Начни с cls_pw=0.25 для умеренно несбалансированных наборов данных и увеличивай до 1.0, если редкие классы по-прежнему показывают плохие результаты. Ты можешь проверить вычисленные веса классов в логах обучения, чтобы убедиться в распределении весов.

Link to this sectionМожно ли обучать модели YOLO26 на чипах Apple silicon?#

Да, Ultralytics YOLO26 поддерживает обучение на чипах Apple silicon, используя фреймворк Metal Performance Shaders (MPS). Укажи 'mps' в качестве устройства для обучения.

Пример обучения MPS
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model on Apple silicon chip (M1/M2/M3/M4)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

Для получения более подробной информации обратись к разделу Обучение на Apple Silicon через MPS.

Link to this sectionКаковы распространенные настройки обучения и как мне их сконфигурировать?#

Ultralytics YOLO26 позволяет конфигурировать различные параметры обучения, такие как размер пакета (batch size), скорость обучения (learning rate), количество эпох и многое другое с помощью аргументов. Вот краткий обзор:

АргументПо умолчаниюОписание
modelNoneПуть к файлу модели для обучения.
dataNoneПуть к файлу конфигурации набора данных (например, coco8.yaml).
epochs100Общее количество эпох обучения.
batch16Размер пакета (batch size), настраиваемый как целое число или в автоматическом режиме.
imgsz640Целевой размер изображения для обучения.
deviceNoneВычислительное устройство(а) для обучения, например cpu, 0, 0,1 или mps.
saveTrueВключает сохранение контрольных точек обучения и весов финальной модели.

Для получения подробного руководства по настройкам обучения ознакомься с разделом Настройки обучения.

Комментарии