Обучение модели с 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
Алгоритм автоматического выбора отдает приоритет графическим процессорам со следующими характеристиками:
- Более низкие процентные показатели использования тока
- Больше доступной памяти (свободной VRAM)
- Более низкая температура и энергопотребление
Эта функция особенно ценна в средах общих вычислений или при выполнении нескольких задач обучения для разных моделей. Она автоматически адаптируется к изменяющимся системным условиям, обеспечивая оптимальное распределение ресурсов без ручного вмешательства.
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 |
Включает сохранение контрольных точек обучения и финальных весов модели. |
Для получения подробной информации о настройках обучения, обратитесь к разделу Настройки обучения.