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

Обучение модели с 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("yolov8n.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=yolov8n.pt epochs=100 imgsz=640 device=-1

# Start training using the two most idle GPUs
yolo detect train data=coco8.yaml model=yolov8n.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 охватывают различные гиперпараметры и конфигурации, используемые в процессе обучения. Эти параметры влияют на производительность, скорость и точность модели. Ключевые параметры обучения включают размер пакета, скорость обучения, импульс и затухание веса. Кроме того, выбор оптимизатора, функции потерь и состава обучающего набора данных может повлиять на процесс обучения. Тщательная настройка и эксперименты с этими параметрами имеют решающее значение для оптимизации производительности.

Аргумент Тип По умолчанию Описание
model str None Указывает файл модели для обучения. Принимает путь к предварительно обученной модели .pt или файлу конфигурации .yaml . Важен для определения структуры модели или инициализации весов.
data str None Путь к файлу конфигурации набора данных (например, coco8.yaml). Этот файл содержит параметры, специфичные для набора данных, включая пути к обучающим и данным валидации, названия классов и количество классов.
epochs int 100 Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Настройка этого значения может повлиять на продолжительность обучения и производительность модели.
time float None Максимальное время обучения в часах. Если задано, оно отменяет значение epochs Аргумент, позволяющий автоматически остановить обучение по истечении указанного времени. Полезно для сценариев обучения с ограничением по времени.
patience int 100 Количество эпох ожидания без улучшения метрик проверки, после которого обучение будет досрочно остановлено. Помогает предотвратить переобучение, останавливая обучение при выходе на плато.
batch int или float 16 Размер пакета (batch size), с тремя режимами: задается как целое число (например, batch=16), автоматический режим для 60% использования памяти GPU (batch=-1), или автоматический режим с указанной долей использования (batch=0.70).
imgsz int 640 Целевой размер изображения для обучения. Изображения изменяются до квадратов со сторонами, равными указанному значению (если rect=False), сохраняя пропорции для моделей YOLO, но не для RTDETR. Влияет на модель точность и вычислительную сложность.
save bool True Включает сохранение контрольных точек обучения и весов окончательной модели. Полезно для возобновления обучения или развертывания модели.
save_period int -1 Частота сохранения контрольных точек модели, заданная в эпохах. Значение -1 отключает эту функцию. Полезно для сохранения промежуточных моделей во время длительных сеансов обучения.
cache bool False Включает кэширование изображений набора данных в памяти (True/ram), на диске (disk), или отключает его (False). Улучшает скорость обучения за счет уменьшения дискового ввода-вывода, но увеличивает использование памяти.
device int или str или list None Указывает вычислительное устройство(а) для обучения: один GPU (device=0), несколько GPU (device=[0,1]), CPU (device=cpu), MPS для Apple silicon (device=mps), или автоматическом выборе наиболее незагруженной GPU (device=-1) или несколько простаивающих GPU (device=[-1,-1])
workers int 8 Количество рабочих потоков для загрузки данных (на RANK при обучении с несколькими GPU). Влияет на скорость предварительной обработки данных и подачи их в модель, особенно полезно в конфигурациях с несколькими GPU.
project str None Имя каталога проекта, в котором сохраняются результаты обучения. Обеспечивает организованное хранение различных экспериментов.
name str None Имя запуска обучения. Используется для создания подкаталога в папке проекта, в котором хранятся журналы и результаты обучения.
exist_ok bool False Если True, разрешает перезапись существующего каталога project/name. Полезно для итеративных экспериментов без необходимости вручную удалять предыдущие результаты.
pretrained bool или str True Определяет, следует ли начинать обучение с предварительно обученной модели. Может быть логическим значением или строковым путем к конкретной модели, из которой следует загружать веса. Повышает эффективность обучения и производительность модели.
optimizer str 'auto' Выбор оптимизатора для обучения. Возможные варианты: SGD, Adam, AdamW, NAdam, RAdam, RMSProp и т.д., или auto для автоматического выбора на основе конфигурации модели. Влияет на скорость и стабильность сходимости.
seed int 0 Устанавливает случайное начальное число для обучения, обеспечивая воспроизводимость результатов при запусках с одинаковыми конфигурациями.
deterministic bool True Принудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но может повлиять на производительность и скорость из-за ограничения на недетерминированные алгоритмы.
single_cls bool False Рассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда основное внимание уделяется наличию объекта, а не классификации.
classes list[int] None Указывает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения.
rect bool False Включает стратегию минимального заполнения — изображения в пакете минимально заполняются для достижения общего размера, при этом самая длинная сторона равна imgsz. Может повысить эффективность и скорость, но может повлиять на точность модели.
multi_scale bool False Включает многомасштабное обучение путем увеличения/уменьшения imgsz до коэффициента 0.5 во время обучения. Обучает модель быть более точной с несколькими imgsz во время инференса.
cos_lr bool False Использует планировщик скорости обучения на основе косинуса, регулируя скорость обучения в соответствии с косинусоидальной кривой в течение эпох. Помогает в управлении скоростью обучения для лучшей сходимости.
close_mosaic int 10 Отключает мозаичную аугментацию данных в последние N эпох для стабилизации обучения перед завершением. Установка значения 0 отключает эту функцию.
resume bool False Возобновляет обучение с последней сохраненной контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и количество эпох, обеспечивая плавное продолжение обучения.
amp bool True Включает автоматическое обучение смешанной точности (AMP), снижая использование памяти и, возможно, ускоряя обучение с минимальным влиянием на точность.
fraction float 1.0 Указывает долю набора данных для использования при обучении. Позволяет проводить обучение на подмножестве полного набора данных, что полезно для экспериментов или при ограниченных ресурсах.
profile bool False Включает профилирование скорости ONNX и TensorRT во время обучения, что полезно для оптимизации развертывания модели.
freeze int или list None Замораживает первые N слоев модели или указанные слои по индексу, уменьшая количество обучаемых параметров. Полезно для тонкой настройки или переноса обучения.
lr0 float 0.01 Начальная скорость обучения (т.е. SGD=1E-2, Adam=1E-3). Регулировка этого значения имеет решающее значение для процесса оптимизации, влияя на скорость обновления весов модели.
lrf float 0.01 Конечная скорость обучения как доля начальной скорости = (lr0 * lrf), используется в сочетании с планировщиками для регулировки скорости обучения с течением времени.
momentum float 0.937 Фактор импульса для SGD или beta1 для оптимизаторов Adam, влияющий на включение прошлых градиентов в текущее обновление.
weight_decay float 0.0005 L2 регуляризация, штрафующая большие веса для предотвращения переобучения.
warmup_epochs float 3.0 Количество эпох для разогрева скорости обучения, постепенно увеличивая скорость обучения с низкого значения до начальной скорости обучения для стабилизации обучения на ранней стадии.
warmup_momentum float 0.8 Начальный импульс для фазы разогрева, постепенно корректируемый до установленного импульса в течение периода разогрева.
warmup_bias_lr float 0.1 Скорость обучения для параметров смещения во время фазы разогрева, помогающая стабилизировать обучение модели в начальных эпохах.
box float 7.5 Вес компонента потери ограничивающего прямоугольника в функции потерь, влияющий на то, какой акцент делается на точном прогнозировании координат ограничивающего прямоугольника.
cls float 0.5 Вес потери классификации в общей функции потерь, влияющий на важность правильного прогнозирования класса по отношению к другим компонентам.
dfl float 1.5 Вес distribution focal loss, используемого в некоторых версиях YOLO для точной классификации.
pose float 12.0 Вес loss, связанного с определением позы, в моделях, обученных для оценки позы, влияющий на акцент на точном предсказании ключевых точек позы.
kobj float 2.0 Вес loss, связанного с определением наличия объекта по ключевым точкам, в моделях оценки позы, балансирующий уверенность обнаружения с точностью позы.
nbs int 64 Номинальный размер пакета для нормализации loss.
overlap_mask bool True Определяет, следует ли объединять маски объектов в одну маску для обучения или хранить отдельно для каждого объекта. В случае перекрытия меньшая маска накладывается поверх большей маски во время объединения.
mask_ratio int 4 Коэффициент уменьшения дискретизации для масок сегментации, влияющий на разрешение масок, используемых во время обучения.
dropout float 0.0 Уровень Dropout для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения юнитов во время обучения.
val bool True Включает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных.
plots bool False Создает и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения.

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

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

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

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

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

Аргумент Тип По умолчанию Диапазон Описание
hsv_h float 0.015 0.0 - 1.0 Регулирует оттенок изображения на долю цветового круга, внося вариативность цвета. Помогает модели обобщать при различных условиях освещения.
hsv_s float 0.7 0.0 - 1.0 Изменяет насыщенность изображения на долю, влияя на интенсивность цветов. Полезно для имитации различных условий окружающей среды.
hsv_v float 0.4 0.0 - 1.0 Изменяет значение (яркость) изображения на долю, помогая модели хорошо работать в различных условиях освещения.
degrees float 0.0 0.0 - 180 Случайно поворачивает изображение в пределах указанного диапазона градусов, улучшая способность модели распознавать объекты в различных ориентациях.
translate float 0.1 0.0 - 1.0 Сдвигает изображение по горизонтали и вертикали на долю размера изображения, помогая научиться обнаруживать частично видимые объекты.
scale float 0.5 >=0.0 Масштабирует изображение на коэффициент усиления, имитируя объекты на разном расстоянии от камеры.
shear float 0.0 -180 - +180 Сдвигает изображение на заданный угол, имитируя эффект просмотра объектов с разных углов.
perspective float 0.0 0.0 - 0.001 Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве.
flipud float 0.0 0.0 - 1.0 Переворачивает изображение вверх ногами с указанной вероятностью, увеличивая вариативность данных, не влияя на характеристики объекта.
fliplr float 0.5 0.0 - 1.0 Отражает изображение слева направо с указанной вероятностью, что полезно для изучения симметричных объектов и увеличения разнообразия набора данных.
bgr float 0.0 0.0 - 1.0 Переключает каналы изображения с RGB на BGR с указанной вероятностью, что полезно для повышения устойчивости к неправильному порядку каналов.
mosaic float 1.0 0.0 - 1.0 Объединяет четыре обучающих изображения в одно, имитируя различные композиции сцен и взаимодействия объектов. Очень эффективно для понимания сложных сцен.
mixup float 0.0 0.0 - 1.0 Смешивает два изображения и их метки, создавая составное изображение. Повышает способность модели к обобщению за счет внесения шумовых меток и визуальной изменчивости.
cutmix float 0.0 0.0 - 1.0 Объединяет части двух изображений, создавая частичное смешивание с сохранением отдельных областей. Повышает устойчивость модели за счет создания сценариев окклюзии.
copy_paste float 0.0 0.0 - 1.0 Только сегментация. Копирует и вставляет объекты между изображениями для увеличения количества экземпляров объектов.
copy_paste_mode str flip - Только сегментацияУказывает copy-paste стратегию для использования. Возможные варианты включают 'flip' и 'mixup'.
auto_augment str randaugment - Только классификация. Применяет предопределенную политику увеличения ('randaugment', 'autoaugment', или 'augmix') для повышения производительности модели за счет визуального разнообразия.
erasing float 0.4 0.0 - 0.9 Только классификация. Случайным образом стирает области изображения во время обучения, чтобы побудить модель сосредоточиться на менее очевидных признаках.

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

Информация

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

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

При обучении модели 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 позволяет настраивать различные параметры обучения, такие как размер пакета, скорость обучения, количество эпох и многое другое, с помощью аргументов. Вот краткий обзор:

Аргумент По умолчанию Описание
model None Путь к файлу модели для обучения.
data None Путь к файлу конфигурации набора данных (например, coco8.yaml).
epochs 100 Общее количество эпох обучения.
batch 16 Размер пакета, регулируемый как целое число или автоматический режим.
imgsz 640 Целевой размер изображения для обучения.
device None Вычислительное устройство(а) для обучения, например cpu, 0, 0,1, или mps.
save True Включает сохранение контрольных точек обучения и финальных весов модели.

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



📅 Создано 1 год назад ✏️ Обновлено 2 месяца назад

Комментарии