Перейти к содержанию

Обучение модели с Ultralytics YOLO

Экосистема и интеграции Ultralytics YOLO

Введение

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



Смотреть: Как обучить модель YOLO на вашем пользовательском наборе данных в Google Colab.

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

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

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

Ключевые особенности режима поезда

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

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

Совет

  • Наборы данных YOLO11, такие как COCO, VOC, ImageNet и многие другие, автоматически загружаются при первом использовании, т.е. yolo train data=coco.yaml

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

Обучите YOLO11n на наборе данных 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("yolo11n.yaml")  # build a new model from YAML
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n.yaml").load("yolo11n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolo11n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolo11n.yaml pretrained=yolo11n.pt epochs=100 imgsz=640

МультиGPU Обучение

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

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

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

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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])
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=0,1

# Use the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1

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

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

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

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

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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])
# Start training using the single most idle GPU
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1

# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=-1,-1

Алгоритм автоматического выбора отдает приоритет графическим процессорам со следующими характеристиками:

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

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

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("yolo11n.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")
# Start training from a pretrained *.pt model using MPS
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640 device=mps

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

Возобновление прерванных тренировок

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

При возобновлении обучения 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 an interrupted training
yolo train resume model=path/to/last.pt

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

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

Настройки поезда

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

АргументТипПо умолчаниюОписание
modelstrNoneУказывает файл модели для обучения. Принимает путь к предварительно обученной модели .pt или файлу конфигурации .yaml . Важен для определения структуры модели или инициализации весов.
datastrNoneПуть к файлу конфигурации набора данных (например, coco8.yaml). Этот файл содержит параметры, специфичные для набора данных, включая пути к обучающим и данным валидации, названия классов и количество классов.
epochsint100Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Настройка этого значения может повлиять на продолжительность обучения и производительность модели.
timefloatNoneМаксимальное время обучения в часах. Если задано, оно отменяет значение epochs Аргумент, позволяющий автоматически остановить обучение по истечении указанного времени. Полезно для сценариев обучения с ограничением по времени.
patienceint100Количество эпох ожидания без улучшения метрик проверки, после которого обучение будет досрочно остановлено. Помогает предотвратить переобучение, останавливая обучение при выходе на плато.
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). Улучшает скорость обучения за счет уменьшения дискового ввода-вывода, но увеличивает использование памяти.
deviceint или str или listNoneУказывает вычислительное устройство(а) для обучения: один GPU (device=0), несколько GPU (device=[0,1]), CPU (device=cpu), MPS для Apple silicon (device=mps), или автоматическом выборе наиболее незагруженной GPU (device=-1) или несколько простаивающих GPU (device=[-1,-1])
workersint8Количество рабочих потоков для загрузки данных (на RANK при обучении с несколькими GPU). Влияет на скорость предварительной обработки данных и подачи их в модель, особенно полезно в конфигурациях с несколькими GPU.
projectstrNoneИмя каталога проекта, в котором сохраняются результаты обучения. Обеспечивает организованное хранение различных экспериментов.
namestrNoneИмя запуска обучения. Используется для создания подкаталога в папке проекта, в котором хранятся журналы и результаты обучения.
exist_okboolFalseЕсли True, разрешает перезапись существующего каталога project/name. Полезно для итеративных экспериментов без необходимости вручную удалять предыдущие результаты.
pretrainedbool или strTrueОпределяет, следует ли начинать обучение с предварительно обученной модели. Может быть логическим значением или строковым путем к конкретной модели, из которой следует загружать веса. Повышает эффективность обучения и производительность модели.
optimizerstr'auto'Выбор оптимизатора для обучения. Возможные варианты: SGD, Adam, AdamW, NAdam, RAdam, RMSProp и т.д., или auto для автоматического выбора на основе конфигурации модели. Влияет на скорость и стабильность сходимости.
seedint0Устанавливает случайное начальное число для обучения, обеспечивая воспроизводимость результатов при запусках с одинаковыми конфигурациями.
deterministicboolTrueПринудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но может повлиять на производительность и скорость из-за ограничения на недетерминированные алгоритмы.
single_clsboolFalseРассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда основное внимание уделяется наличию объекта, а не классификации.
classeslist[int]NoneУказывает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения.
rectboolFalseВключает стратегию минимального заполнения — изображения в пакете минимально заполняются для достижения общего размера, при этом самая длинная сторона равна imgsz. Может повысить эффективность и скорость, но может повлиять на точность модели.
multi_scaleboolFalseВключает многомасштабное обучение путем увеличения/уменьшения imgsz до коэффициента 0.5 во время обучения. Обучает модель быть более точной с несколькими imgsz во время инференса.
cos_lrboolFalseИспользует планировщик скорости обучения на основе косинуса, регулируя скорость обучения в соответствии с косинусоидальной кривой в течение эпох. Помогает в управлении скоростью обучения для лучшей сходимости.
close_mosaicint10Отключает мозаичную аугментацию данных в последние N эпох для стабилизации обучения перед завершением. Установка значения 0 отключает эту функцию.
resumeboolFalseВозобновляет обучение с последней сохраненной контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и количество эпох, обеспечивая плавное продолжение обучения.
ampboolTrueВключает автоматическое обучение смешанной точности (AMP), снижая использование памяти и, возможно, ускоряя обучение с минимальным влиянием на точность.
fractionfloat1.0Указывает долю набора данных для использования при обучении. Позволяет проводить обучение на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах.
profileboolFalseВключает профилирование скорости ONNX и TensorRT во время обучения, что полезно для оптимизации развертывания модели.
freezeint или listNoneЗамораживает первые N слоев модели или указанные слои по индексу, уменьшая количество обучаемых параметров. Полезно для тонкой настройки или переноса обучения.
lr0float0.01Начальная скорость обучения (т.е. SGD=1E-2, Adam=1E-3). Регулировка этого значения имеет решающее значение для процесса оптимизации, влияя на скорость обновления весов модели.
lrffloat0.01Конечная скорость обучения как доля начальной скорости = (lr0 * lrf), используется в сочетании с планировщиками для регулировки скорости обучения с течением времени.
momentumfloat0.937Фактор импульса для SGD или beta1 для оптимизаторов Adam, влияющий на включение прошлых градиентов в текущее обновление.
weight_decayfloat0.0005L2 регуляризация, штрафующая большие веса для предотвращения переобучения.
warmup_epochsfloat3.0Количество эпох для разогрева скорости обучения, постепенно увеличивая скорость обучения с низкого значения до начальной скорости обучения для стабилизации обучения на ранней стадии.
warmup_momentumfloat0.8Начальный импульс для фазы разогрева, постепенно корректируемый до установленного импульса в течение периода разогрева.
warmup_bias_lrfloat0.1Скорость обучения для параметров смещения во время фазы разогрева, помогающая стабилизировать обучение модели в начальных эпохах.
boxfloat7.5Вес компонента потери ограничивающего прямоугольника в функции потерь, влияющий на то, какой акцент делается на точном прогнозировании координат ограничивающего прямоугольника.
clsfloat0.5Вес потери классификации в общей функции потерь, влияющий на важность правильного прогнозирования класса по отношению к другим компонентам.
dflfloat1.5Вес distribution focal loss, используемого в некоторых версиях YOLO для точной классификации.
posefloat12.0Вес loss, связанного с определением позы, в моделях, обученных для оценки позы, влияющий на акцент на точном предсказании ключевых точек позы.
kobjfloat2.0Вес loss, связанного с определением наличия объекта по ключевым точкам, в моделях оценки позы, балансирующий уверенность обнаружения с точностью позы.
nbsint64Номинальный размер пакета для нормализации loss.
overlap_maskboolTrueОпределяет, следует ли объединять маски объектов в одну маску для обучения или хранить отдельно для каждого объекта. В случае перекрытия меньшая маска накладывается поверх большей маски во время объединения.
mask_ratioint4Коэффициент уменьшения дискретизации для масок сегментации, влияющий на разрешение масок, используемых во время обучения.
dropoutfloat0.0Уровень Dropout для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения юнитов во время обучения.
valboolTrueВключает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных.
plotsboolFalseСоздает и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения.
compilebool или strFalseВключает PyTorch 2.x torch.compile компиляция графа с помощью backend='inductor'. Принимает True"default", False → отключается, или строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". При отсутствии поддержки возвращается в режим eager с предупреждением.

Примечание о настройках размера пакета (Batch-size)

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

  • Фиксированный размер пакета: Установите целочисленное значение (например, batch=16), непосредственно указывающее количество изображений в пакете.
  • Автоматический режим (60% памяти GPU): Используйте batch=-1 , чтобы автоматически настроить размер пакета для приблизительного использования 60% памяти CUDA.
  • Автоматический режим с долей использования: Установите дробное значение (например, batch=0.70), чтобы настроить размер пакета на основе указанной доли использования памяти GPU.

Параметры дополнения и гиперпараметры

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

АргументТипПо умолчаниюПоддерживаемые задачиДиапазонОписание
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Изменяет значение (яркость) изображения на долю, помогая модели хорошо работать в различных условиях освещения.
degreesfloat0.0detect, segment, pose, obb0.0 - 180Случайно поворачивает изображение в пределах указанного диапазона градусов, улучшая способность модели распознавать объекты в различных ориентациях.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Сдвигает изображение по горизонтали и вертикали на долю размера изображения, помогая научиться обнаруживать частично видимые объекты.
scalefloat0.5detect, segment, pose, obb, classify>=0.0Масштабирует изображение на коэффициент усиления, имитируя объекты на разном расстоянии от камеры.
shearfloat0.0detect, segment, pose, obb-180 - +180Сдвигает изображение на заданный угол, имитируя эффект просмотра объектов с разных углов.
perspectivefloat0.0detect, segment, pose, obb0.0 - 0.001Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве.
flipudfloat0.0detect, segment, pose, obb, classify0.0 - 1.0Переворачивает изображение вверх ногами с указанной вероятностью, увеличивая вариативность данных, не влияя на характеристики объекта.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Отражает изображение слева направо с указанной вероятностью, что полезно для изучения симметричных объектов и увеличения разнообразия набора данных.
bgrfloat0.0detect, segment, pose, obb0.0 - 1.0Переключает каналы изображения с RGB на BGR с указанной вероятностью, что полезно для повышения устойчивости к неправильному порядку каналов.
mosaicfloat1.0detect, segment, pose, obb0.0 - 1.0Объединяет четыре обучающих изображения в одно, имитируя различные композиции сцен и взаимодействия объектов. Очень эффективно для понимания сложных сцен.
mixupfloat0.0detect, segment, pose, obb0.0 - 1.0Смешивает два изображения и их метки, создавая составное изображение. Повышает способность модели к обобщению за счет внесения шумовых меток и визуальной изменчивости.
cutmixfloat0.0detect, segment, pose, obb0.0 - 1.0Объединяет части двух изображений, создавая частичное смешивание с сохранением отдельных областей. Повышает устойчивость модели за счет создания сценариев окклюзии.
copy_pastefloat0.0segment0.0 - 1.0Копирует и вставляет объекты между изображениями, чтобы увеличить количество экземпляров объектов.
copy_paste_modestrflipsegment-Указывает copy-paste стратегию для использования. Возможные варианты включают 'flip' и 'mixup'.
auto_augmentstrrandaugmentclassify-Применяет предопределенную политику дополнения ('randaugment', 'autoaugment', или 'augmix') для повышения производительности модели за счет визуального разнообразия.
erasingfloat0.4classify0.0 - 0.9Случайное стирание областей изображения во время обучения, чтобы побудить модель сосредоточиться на менее очевидных особенностях.
augmentationslist{{ augmentations }}detect, segment, pose, obb-Пользовательские преобразования Albumentations для расширенного дополнения данныхPython толькоPython API). Принимает список объектов преобразований для специализированных задач по расширению данных.

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

Информация

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

Ведение журнала

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

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

Comet

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

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

Пример

# pip install comet_ml
import comet_ml

comet_ml.init()

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

ClearML

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

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

Пример

# pip install clearml
import clearml

clearml.browser_login()

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

TensorBoard

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

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

Пример

load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory

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

Пример

tensorboard --logdir ultralytics/runs # replace with 'runs' directory

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

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

Часто задаваемые вопросы

Как обучить модель обнаружения объектов с использованием Ultralytics YOLO11?

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

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

from ultralytics import YOLO

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

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

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

Каковы ключевые особенности режима "Поезд" на сайте Ultralytics YOLO11 ?

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

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

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

Как возобновить прерванное занятие на сайте Ultralytics YOLO11 ?

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

Пример возобновления обучения

from ultralytics import YOLO

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

# Resume training
results = model.train(resume=True)
yolo train resume model=path/to/last.pt

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

Можно ли обучать модели YOLO11 на кремниевых чипах Apple?

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

Пример обучения MPS

from ultralytics import YOLO

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

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

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

Каковы общие параметры обучения и как их настроить?

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

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

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



📅 Создано 2 года назад ✏️ Обновлено 5 дней назад
glenn-jocherLaughing-qUltralyticsAssistantMatthewNoyceY-T-GJairajJanglejk4eRizwanMunawardependabotfcakyonBurhan-Q

Комментарии