Рецепт тренировки YOLO26
Введение
В данном руководстве подробно описано обучение рецепт, используемый для изготовления официального YOLO26 предварительно обученные контрольные точки на COCO. Каждый гиперпараметр то, что показано здесь, уже включено в выпущенную версию .pt веса и могут проверяться программным способом.
Понимание того, как обучались базовые модели, поможет вам принимать более взвешенные решения при тонкой настройке: какие методы расширения данных следует сохранить, какие веса функции потерь необходимо скорректировать и какие настройки оптимизатора лучше всего подходят для набора данных вашего размера.
Для кого предназначено это руководство?
Данное руководство предназначено для специалистов, желающих понять, что лежит в основе официальных контрольных точек YOLO26 — не только архитектуру, но и графики скорости обучения, конвейеры данных с дополнениями, а также веса потерь, которые определили их производительность. Используйте эту информацию, чтобы принимать обоснованные решения при настройке модели на ваших собственных данных.
Проверка аргументов обучения
Каждый Ultralytics хранит полную конфигурацию тренировки, использованную для его создания. Вы можете в любой момент ознакомиться с этими настройками:
Проверить аргументы для обучения контрольной точки
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])
import torch
# Load any official checkpoint
ckpt = torch.load("yolo26n.pt", map_location="cpu", weights_only=False)
# Print all training arguments
for k, v in sorted(ckpt["train_args"].items()):
print(f"{k}: {v}")
Это подходит для любого .pt checkpoint — как официальные версии, так и ваши собственные отлаженные модели. Полный список настраиваемых аргументов обучения см. в справочник по настройке обучения.
Обзор обучения
Все базовые модели YOLO26 были обучены на COCO разрешением 640x640 с использованием оптимизатора MuSGD и размером партии 128. Модели были инициализированы на основе промежуточных предварительно обученных весов и дооптимизированы с помощью гиперпараметров, найденных с помощью эволюционного поиска. Полные журналы обучения и метрики для моделей всех размеров доступны на Ultralytics :
Основные конструктивные особенности всех размеров:
- Комплексное обучение (
end2end=True) с индивидуальным руководством NMS - Оптимизатор MuSGD, сочетающий SGD ортогонализованными обновлениями весов конволюционных слоев по методу Muon
- Массивное увеличение с помощью мозаики (вероятность ~0,9–1,0) отключено в течение последних 10 эпох (
close_mosaic=10) - Агрессивное увеличение масштаба (0,56–0,95) для обработки объектов разных размеров
- Минимальное вращение/сдвиг для большинства размеров, что позволяет свести к минимуму геометрические искажения
Гиперпараметры в зависимости от размера модели
Оптимизатор и скорость обучения
| Настройка | N | S | М | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
Стратегия скорости обучения
В модели N использовалась более высокая начальная скорость обучения с резким снижением (lrf=0.0495), тогда как в моделях S/M/L/X использовался гораздо более низкий начальный коэффициент LR с более плавным графиком (lrf=0.882). Это отражает различия в динамике сходимости между небольшими и крупными моделями — небольшие модели требуют более интенсивных обновлений для эффективного обучения.
Веса потерь
| Настройка | N | S | М | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
В модели N приоритет отдается потере DFL, тогда как в моделях S/M/L/X акцент делается на регрессии ограничивающей рамки. Потеря классификации остается относительно стабильной для всех размеров.
Конвейер расширения
Подробное описание каждого метода см. в руководстве по расширениюYOLO .
| Настройка | N | S | М | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
В моделях большего размера в целом используется более агрессивное аугментационное преобразование (более высокие значения параметров mixup, copy-paste и scale), поскольку они обладают большей вычислительной мощностью и получают большее преимущество от более сильной регуляризации. Модель размера N — единственная, в которой применяются значимые преобразования по вращению, сдвигу и BGR.
Внутренние параметры обучения
Для опытных пользователей: параметры внутреннего конвейера
Контрольные точки также содержат параметры, которые использовались во внутреннем конвейере обучения, но не доступны в виде настраиваемых пользователем параметров в default.yaml:
| Настройка | Описание | N | S | М | L | X |
|---|---|---|---|---|---|---|
muon_w | Вес обновления мюонов в MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | Вес SGD в MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Внутренний весовой коэффициент | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Коэффициент потери давления «один к многим» | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Присвоение меток Top-k | 8 | 5 | 5 | 5 | 5 |
Эти параметры фиксируются для обеспечения воспроизводимости, но при тонкой настройке их не нужно задавать. Более подробную информацию см. в разделе «Часто задаваемые вопросы ».
Рекомендации по тонкой настройке
При настройке YOLO26 на собственном наборе данных нет необходимости повторять весь процесс предварительного обучения. В предварительно обученных весах уже заложены знания об аугментации и оптимизации, полученные в ходе COCO . Более общие рекомендации по обучению см. в разделе «Советы по обучению моделей».
Начните с простого
Настроить с использованием значений по умолчанию
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
yolo train model=yolo26n.pt data=your-dataset.yaml epochs=100 imgsz=640
Настройка с использованием значений по умолчанию — это надежная отправная точка. Изменяйте гиперпараметры только в том случае, если у вас есть на то веская причина.
Когда следует регулировать
Small datasets (< 1,000 images):
- Уменьшить силу усиления:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - Более низкая скорость обучения:
lr0=0.001 - Используйте меньше эпох с терпением:
epochs=50,patience=20 - Рассмотрите возможность заморозки базовых уровней:
freeze=10
Крупные наборы данных (более 50 000 изображений):
- Более точно следовать инструкциям по предварительной подготовке
- Рассмотрим
optimizer=MuSGDдля более длинных дистанций - Увеличение объёма:
mosaic=1.0,mixup=0.3,scale=0.9
Изображения для конкретных областей применения (аэрофотосъемка, медицина, подводная съемка):
- Увеличить
flipud=0.5если вертикальная ориентация меняется - Увеличить
degreesесли объекты отображаются с произвольным углом поворота - Настроить
hsv_sиhsv_vесли условия освещения значительно отличаются от COCO
Информацию об автоматической оптимизации гиперпараметров см. в руководстве по настройке гиперпараметров.
Выбор размера модели
| Модель | Лучше всего подходит для | Рекомендации по размеру партии |
|---|---|---|
| YOLO26n | Периферийные устройства, мобильные устройства, обработка в реальном времени на CPU | Крупные партии (64–128) на потребительских графических процессорах |
| YOLO26s | Оптимальное соотношение скорости и точности | Средние партии (32–64) |
| YOLO26m | Более высокая точность при умеренных вычислительных затратах | Небольшие партии (16–32) |
| YOLO26l | Высокая точность при GPU | Небольшие партии (8–16) или с использованиемGPU |
| YOLO26x | Максимальная точность, развертывание серверов | Небольшие партии (4–8) или конфигурации сGPU |
Информацию о параметрах экспорта и развертывания см. в руководстве по экспорту и в разделе «Параметры развертывания модели».
Часто задаваемые вопросы
Как посмотреть точные гиперпараметры, использованные для любой контрольной точки?
Загрузите контрольную точку с помощью torch.load() и перейти к train_args клавишу или воспользуйтесь model.ckpt["train_args"] с помощью Ultralytics . См. Проверка аргументов обучения Полные примеры см.
Почему количество эпох различается для моделей разного размера?
Более крупные модели быстрее достигают сходимости на COCO обладают большей вычислительной мощностью. Модели серии N потребовалось 245 эпох, тогда как модели серии X — всего 40. При настройке модели на собственном наборе данных оптимальное количество эпох зависит от объема и сложности набора данных, а не от размера модели. Используйте раннюю остановку (patience) для автоматического определения подходящего места остановки.
Стоит ли использовать MuSGD для тонкой настройки?
Когда optimizer=auto (по умолчанию) Ultralytics выбирает MuSGD для более длительных тренировочных прогонов (>10 000 итераций) и AdamW для более коротких. Вы можете явно задать optimizer=MuSGD если хотите. Подробнее о выборе оптимизатора см. в учебная документация.
Что такое muon_w, sgd_w, cls_w, o2mи topk в контрольно-пропускном пункте?
Это внутренние параметры из конвейера обучения, на основе которого были сгенерированы базовые контрольные точки. Они сохраняются для обеспечения воспроизводимости, но не настройки, которые пользователь может изменять в default.yaml. При тонкой настройке их настраивать не нужно. См. Внутренние параметры обучения для получения подробной информации.
Можно ли повторить точно такую же предварительную обучение с нуля?
Контрольные точки были созданы с использованием внутренней ветки для обучения, содержащей дополнительные функции, которых нет в общедоступном кодовом базе (например, настраиваемые o2m веса и cls_w). Используя гиперпараметры, описанные на этой странице, с помощью общедоступного Ultralytics можно получить очень близкие результаты, однако для точного воспроизведения потребуется внутренняя ветка.