Конфигурация#
Настройки и гиперпараметры YOLO играют критически важную роль в производительности, скорости и точности модели. Эти настройки могут влиять на поведение модели на разных этапах, включая обучение, валидацию и предсказание.
Watch: Mastering Ultralytics YOLO: Configuration
Команды Ultralytics используют следующий синтаксис:
yolo TASK MODE ARGSГде:
TASK(необязательно) — одно из значений (detect, segment, semantic, depth, classify, pose, obb)MODE(обязательно) — одно из значений (train, val, predict, export, track, benchmark)ARGS(необязательно) — парыarg=value, напримерimgsz=640, которые переопределяют значения по умолчанию.
Значения ARG по умолчанию определены на этой странице и берутся из файла cfg/default.yaml.
Задачи#
Модели Ultralytics YOLO могут выполнять различные задачи компьютерного зрения, включая:
- Detect: обнаружение объектов выявляет объекты на изображении или видео и определяет их местоположение.
- Segment: сегментация экземпляров разделяет изображение или видео на области, соответствующие разным объектам или классам.
- Semantic segmentation (
semantic): семантическая сегментация присваивает метку класса каждому пикселю изображения для детального понимания сцены. - Depth (
depth): оценка глубины по монокулярному изображению предсказывает карту глубины в метрах для каждого пикселя на основе одного RGB-изображения. - Classify: классификация изображений предсказывает метку класса входного изображения.
- Pose: оценка позы выявляет объекты и оценивает их ключевые точки на изображении или видео.
- OBB: ориентированные ограничивающие рамки используют повернутые ограничивающие рамки, подходящие для спутниковых или медицинских изображений.
| Аргумент | По умолчанию | Описание |
|---|---|---|
task | 'detect' | Определяет задачу YOLO: detect для обнаружения объектов, segment для сегментации экземпляров, semantic для семантической сегментации, depth для оценки глубины по монокулярному изображению, classify для классификации, pose для оценки позы и obb для ориентированных ограничивающих рамок. Каждая задача адаптирована под определённые выходные данные и проблемы анализа изображений и видео. |
Режимы#
Модели Ultralytics YOLO работают в разных режимах, каждый из которых предназначен для определённого этапа жизненного цикла модели:
- Train: обучение модели YOLO на пользовательском наборе данных.
- Val: валидация обученной модели YOLO.
- Predict: использование обученной модели YOLO для предсказаний на новых изображениях или видео.
- Export: экспорт модели YOLO для развёртывания.
- Track: отслеживание объектов в реальном времени с помощью модели YOLO.
- Benchmark: сравнительное тестирование скорости и точности экспортированных моделей YOLO (ONNX, TensorRT и т. д.).
| Аргумент | По умолчанию | Описание |
|---|---|---|
mode | 'train' | Определяет режим работы модели YOLO: train для обучения модели, val для валидации, predict для инференса, export для преобразования в форматы развёртывания, track для отслеживания объектов и benchmark для оценки производительности. Каждый режим поддерживает разные этапы — от разработки до развёртывания. |
Настройки обучения#
Настройки обучения моделей YOLO включают гиперпараметры и конфигурации, влияющие на производительность, скорость и точность модели. Ключевые настройки включают размер батча, скорость обучения, момент и затухание весов. На обучение также влияют выбор оптимизатора, функции потерь и состав набора данных. Настройка и эксперименты имеют решающее значение для достижения оптимальной производительности. Подробнее см. в описании входной функции Ultralytics.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Указывает файл модели для обучения. Принимает путь либо к предварительно обученной модели .pt, либо к конфигурационному файлу .yaml. Необходим для определения структуры модели или инициализации весов. |
data | str | None | Путь к YAML-файлу набора данных (например, coco8.yaml), в котором указаны пути к данным для обучения и валидации, имена классов и количество классов. Для классификации вместо этого указывается каталог набора данных или имя встроенного набора данных (например, imagenet10). |
epochs | int | 100 | Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Изменение этого значения может повлиять на продолжительность обучения и производительность модели. |
time | float | None | Максимальная продолжительность обучения в часах. Если задана, она переопределяет аргумент epochs, позволяя автоматически остановить обучение по истечении указанного времени. Полезно для сценариев обучения с ограничением по времени. |
patience | int | 100 | Количество эпох, в течение которых нужно ожидать улучшения метрик валидации перед досрочной остановкой обучения. Помогает предотвратить переобучение, останавливая обучение, когда производительность перестаёт улучшаться. |
batch | int или float | 16 | Размер пакета с тремя режимами: целое число (например, batch=16), автоматический режим с использованием 60% памяти GPU (batch=-1) или автоматический режим с указанной долей использования (batch=0.70). |
imgsz | int | 640 | Целевой размер изображения для обучения. Изображения изменяются до квадратов со сторонами указанного размера (если rect=False), при этом соотношение сторон сохраняется для моделей YOLO, но не для RT-DETR. Влияет на точность модели и вычислительную сложность. |
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), NPU Huawei Ascend (device=npu:0 или device=npu:0,1), автоматический выбор незанятого GPU (device=-1) или нескольких незанятых GPU (device=[-1,-1]). |
workers | int | 8 | Количество рабочих потоков для загрузки данных (на каждый RANK при обучении на нескольких GPU). Влияет на скорость предварительной обработки данных и их подачи в модель, особенно в конфигурациях с несколькими GPU. |
project | str | None | Имя каталога проекта, в котором сохраняются результаты обучения. Позволяет организованно хранить разные эксперименты. |
name | str | None | Имя запуска обучения. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты обучения. |
exist_ok | bool | False | Если установлено значение True, разрешает перезаписывать существующий каталог проекта и запуска. Полезно для итеративных экспериментов без необходимости вручную удалять предыдущие результаты. |
save_dir | str | None | Указывает точный каталог, в котором сохраняются результаты запуска, переопределяя комбинацию project/name. Путь используется как есть, без автоматического увеличения номера, поэтому последовательные запуски используют один и тот же каталог. |
pretrained | bool или str | True | Определяет, начинать ли обучение с предварительно обученных весов. Может иметь логическое значение или содержать строковый путь к загружаемым весам. pretrained=False выполняет обучение со случайно инициализированными весами, сохраняя архитектуру модели. |
cls_remap | bool | True | При дообучении на разных наборах данных копирует строки предварительно обученной классификационной головы в новую модель там, где имена классов совпадают, поэтому пересекающиеся классы сохраняют изученное смещение, а также свои веса, если ширина головы не изменилась. Применяется независимо от того, различается ли количество классов или совпадает при другом порядке классов. |
optimizer | str | 'auto' | Выбор оптимизатора для обучения. Доступны варианты SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp или auto, чтобы выбрать AdamW или MuSGD на основе количества итераций обучения. Влияет на скорость и стабильность сходимости. |
seed | int | 0 | Задаёт случайное начальное значение для обучения, обеспечивая воспроизводимость результатов при запусках с одинаковыми конфигурациями. |
deterministic | bool | True | Принудительно использует детерминированные алгоритмы, обеспечивая воспроизводимость, но потенциально снижая производительность и скорость из-за ограничения на недетерминированные алгоритмы. |
verbose | bool | True | Включает подробный вывод во время обучения: индикаторы выполнения, метрики для каждой эпохи и дополнительная информация об обучении отображаются в консоли. |
single_cls | bool | False | Во время обучения рассматривает все классы в многоклассовых наборах данных как один класс. Полезно для задач бинарной классификации или когда важно наличие объекта, а не его классификация. |
classes | list[int] | None | Задаёт список идентификаторов классов для обучения. Полезно для фильтрации и выбора только определённых классов во время обучения. |
rect | bool | False | Включает стратегию минимального заполнения: изображения в пакете минимально дополняются до общего размера, при этом длина самой длинной стороны равна imgsz. Это может повысить эффективность и скорость, но повлиять на точность модели. |
multi_scale | float | 0.0 | Случайно изменяет imgsz в каждом пакете на +/- multi_scale (например, 0.25 -> от 0.75x до 1.25x), округляя значение до кратного шагу модели; 0.0 отключает многошкальное обучение. |
cos_lr | bool | False | Использует косинусный планировщик скорости обучения, изменяя скорость обучения по косинусной кривой на протяжении эпох. Помогает управлять скоростью обучения для улучшения сходимости. |
close_mosaic | int | 10 | Отключает мозаичную аугментацию данных в последние N эпох, чтобы стабилизировать обучение перед завершением. Значение 0 отключает эту функцию. |
resume | bool | False | Продолжает обучение с последней сохранённой контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и номер эпохи, плавно продолжая обучение. |
amp | bool или str | True | Задаёт точность обучения: True или "fp16" используют FP16, "bf16" использует BF16 на поддерживаемых устройствах CUDA, а False или "fp32" используют FP32. |
quantize | int или str | None | Установи значение 8 (или "int8") для обучения с учетом квантования (QAT), при котором выполняется точная настройка с искусственным квантованием в цикле, чтобы веса выдерживали экспорт в INT8. Смотри обучение с учетом квантования. |
fraction | float, int или list | 1.0 | Подмножество набора данных в виде доли/количества или списка [train, val, test]. 1 означает полное подмножество, целые числа больше 1 — количество изображений, а только необязательная запись для тестирования принимает 0/0.0 в значении «нет». Списки из двух элементов сохраняют полное тестовое подмножество. |
profile | bool | False | Включает профилирование скорости ONNX и TensorRT во время обучения, что полезно для оптимизации развёртывания модели. |
freeze | int или list | None | Замораживает первые N слоёв модели или определённые слои по индексу либо имени модуля (23.cv2, без начального model.), уменьшая число обучаемых параметров. Полезно для дообучения или переноса обучения. |
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 | Скорость обучения параметров смещения во время фазы разогрева, помогающая стабилизировать обучение модели в первых эпохах. При значении по умолчанию optimizer='auto' автоматически устанавливается в 0.0, поэтому для его использования явно укажи оптимизатор. |
distill_model | str | None | Путь к контрольной точке модели-учителя (например, yolo26x.pt) для дистилляции знаний. Если значение задано, модель-ученик обучается с дополнительной функцией потерь дистилляции под руководством замороженной модели-учителя. |
dis | float | 6.0 | Вес потерь дистилляции, добавляемых к стандартным потерям обнаружения. Более высокие значения усиливают влияние подсказок по признакам от модели-учителя. |
box | float | 7.5 | Вес компонента потерь для рамок в функции потерь, влияющий на степень акцента на точном предсказании координат ограничивающих рамок. |
cls | float | 0.5 | Вес потерь классификации в общей функции потерь, влияющий на важность правильного предсказания класса относительно других компонентов. |
cls_pw | float | 0.0 | Степень взвешивания классов для обработки дисбаланса классов с использованием обратной частоты классов. 0.0 отключает взвешивание классов, 1.0 применяет полное взвешивание по обратной частоте. Значения от 0 до 1 обеспечивают частичное взвешивание. |
dfl | float | 1.5 | Вес члена регрессии расстояния до рамки: distribution focal loss (DFL), если голова обнаружения использует reg_max > 1, или потери L1 для нормализованных расстояний до рамок в YOLO26 без DFL (reg_max: 1). |
pose | float | 12.0 | Вес потерь позы в моделях, обучаемых для оценки позы, влияющий на степень акцента на точном предсказании ключевых точек позы. |
kobj | float | 1.0 | Вес потерь объектности ключевых точек в моделях оценки позы, обеспечивающий баланс между уверенностью обнаружения и точностью позы. |
rle | float | 1.0 | Вес потерь оценки остаточного логарифма правдоподобия в моделях оценки позы, влияющий на точность локализации ключевых точек. |
angle | float | 1.0 | Вес потерь угла в моделях OBB, влияющий на точность предсказания углов ориентированных ограничивающих рамок. |
dlog | float | 1.0 | Вес масштабно-инвариантных логарифмических потерь (SILog) в моделях оценки глубины — основного члена, определяющего точность глубины. |
dgrad | float | 0.5 | Вес градиентных потерь в моделях оценки глубины, штрафующих ошибки на границах глубины и способствующих формированию более чётких границ поверхностей. |
dlam | float | 1.0 | Коэффициент фокусировки на дисперсии для потерь SILog в моделях оценки глубины. 1.0 делает потери полностью масштабно-инвариантными, а 0.0 сводит их к обычным логарифмическим потерям RMSE. |
nbs | int | 64 | Номинальный размер пакета для нормализации потерь. |
overlap_mask | bool | True | Определяет, следует ли объединять маски объектов в одну маску для обучения или сохранять их отдельными для каждого объекта. При перекрытии меньшая маска накладывается поверх большей во время объединения. |
mask_ratio | int | 4 | Коэффициент уменьшения размера масок сегментации, влияющий на разрешение масок, используемых во время обучения. |
dropout | float | 0.0 | Коэффициент dropout для регуляризации в задачах классификации, предотвращающий переобучение за счёт случайного исключения блоков во время обучения. |
val | bool | True | Включает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных. |
nms | bool, необязательно | None | Выбирает голову вывода, используемую для валидации эпох, выбора контрольных точек и ранней остановки. None или True использует схему «один ко многим» с NMS; False использует голову без NMS, если она доступна. Обе головы сохраняют свои потери при обучении. |
plots | bool | True | Создаёт и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и ходе обучения. |
compile | bool или str | False | Включает компиляцию графа torch.compile PyTorch 2.x с помощью backend='inductor'. Принимает значения True → "default", False → отключает функцию, а также строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если функция не поддерживается, используется eager-режим с предупреждением. |
channels_last | bool | None | Использует формат памяти channels_last (NHWC) для сверток во время обучения. None автоматически включает его на CUDA с PyTorch 1.11 или новее, за исключением Windows, где он показал меньшую скорость. False отключает его, а True явно запрашивает его. В PyTorch 1.10 и более старых версиях, на CPU и MPS по умолчанию остается NCHW. |
max_det | int | 300 | Максимальное количество обнаружений на изображение во время валидации при обучении. Для задач детекции, сегментации, позы и OBB значение по умолчанию 300 увеличивается до наибольшего количества объектов с разметкой в train/val только тогда, когда это количество превышает 300. Другие значения остаются фиксированными; превышение лимита вызывает предупреждение. |
Аргумент batch предоставляет три варианта конфигурации:
- Фиксированный размер батча: укажи количество изображений в батче целым числом (например,
batch=16). - Автоматический режим (60% памяти GPU): используй
batch=-1для автоматической настройки примерно на 60% использования памяти CUDA. - Автоматический режим с долей использования: укажи долю (например,
batch=0.70), чтобы настроить использование на основе заданной доли памяти GPU. - Подходящий размер не найден: если ни один кандидат на размер пакета не создаёт пригодный профиль, AutoBatch выдаёт понятную ошибку
RuntimeError, а не молча использует несвязанный с этим вариант по умолчанию.
Настройки предсказания#
Настройки предсказания моделей YOLO включают гиперпараметры и конфигурации, влияющие на производительность, скорость и точность во время инференса. Ключевые настройки включают порог уверенности, порог подавления немаксимумов (NMS) и количество классов. На предсказания также влияют размер и формат входных данных, а также дополнительные функции, например маски. Настройка этих параметров необходима для достижения оптимальной производительности.
Аргументы инференса:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
source | str или int или None | None | Определяет источник данных для инференса. Это может быть путь к изображению, видеофайл, каталог, URL или идентификатор устройства для потоковой передачи в реальном времени. Если источник не указан, в журнал записывается предупреждение, а модель использует встроенные демонстрационные ресурсы (ultralytics/assets или демонстрационный URL для OBB). Поддерживается широкий диапазон форматов и источников, что обеспечивает гибкое применение для разных типов входных данных. |
conf | float | 0.25 | Задаёт минимальный порог уверенности для обнаружений. Объекты, обнаруженные с уверенностью ниже этого порога, игнорируются. Изменение этого значения может помочь сократить количество ложноположительных срабатываний. |
iou | float | 0.7 | Порог пересечения по объединению (IoU) для подавления немаксимумов (NMS). Меньшие значения приводят к меньшему числу обнаружений за счёт удаления перекрывающихся рамок, что полезно для уменьшения дубликатов. |
imgsz | int или tuple | 640 | Целевой размер Letterbox. Целое число задаёт квадратный N×N, а кортеж — (height, width). При использовании rect=True фактический тензор может быть меньше этого целевого размера из-за дополнения до минимального прямоугольника. Используй rect=False для фиксированного размера. См. раздел Фиксированная форма и минимальный прямоугольник. |
rect | bool | True | Если True, по возможности используется дополнение до минимального прямоугольника (батч с одинаковой формой и поддерживаемый бэкенд). Если False, всегда выполняется дополнение до полного imgsz. См. раздел Фиксированная форма и минимальный прямоугольник. |
quantize | int или str | None | Точность инференса: 16/"fp16" и 32/"fp32"/не задано выбирают вычисления FP16 или FP32 для моделей PyTorch и TorchScript; остальные форматы выполняют вычисления с точностью, выбранной их артефактом и средой выполнения. При 16 OpenVINO по-прежнему выполняет FP16-округление входных данных на клиенте и расширяет их обратно до FP32, не меняя то, с какой точностью выполняет вычисления среда выполнения. Квантование INT8/PTQ настраивается во время экспорта, а затем используется путем загрузки экспортированной модели. Заменяет устаревший флаг half. |
device | str | None | Определяет устройство для инференса (например, cpu, cuda:0, 0, npu или npu:0). Позволяет выбрать CPU, конкретный GPU, NPU Huawei Ascend или другое вычислительное устройство для выполнения модели. |
dnn | bool | False | Если True, для инференса ONNX-модели используется модуль OpenCV DNN вместо ONNX Runtime. |
data | str | None | Путь к YAML-файлу датасета (например, coco8.yaml), который считывается только для получения names и только в том случае, если загруженная модель не содержит собственных имён классов: это может быть экспорт стороннего разработчика или экспорт Ultralytics, отделённый от поставляемых вместе с ним метаданных. В противном случае такая модель сообщает class0, class1 и так далее. |
batch | int | 1 | Определяет размер батча для инференса (работает только если источник — каталог, видеофайл или файл .txt). Больший размер батча может повысить пропускную способность и сократить общее время инференса. |
max_det | int | 300 | Максимальное количество обнаружений, разрешённых для одного изображения. Ограничивает общее число объектов, которые модель может обнаружить за один инференс, предотвращая чрезмерное количество выходных данных в плотных сценах. |
vid_stride | int | 1 | Шаг кадров для видеовходов. Позволяет пропускать кадры в видео, ускоряя обработку ценой снижения временного разрешения. Значение 1 обрабатывает каждый кадр, а большие значения пропускают кадры. |
stream_buffer | bool | False | Определяет, следует ли помещать входящие кадры в очередь для видеопотоков. Если False, старые кадры отбрасываются для обработки новых кадров (оптимизировано для приложений реального времени). Если True, новые кадры помещаются в буфер, поэтому ни один кадр не пропускается, но возникает задержка, если FPS инференса ниже FPS потока. |
visualize | bool | False | Сохраняет тепловую карту активации классов рядом с каждым предсказанием, показывая, какие пиксели повысили оценки предсказанного класса. Учитывает conf и classes, поэтому classes=[0] отображает только этот класс. Доступно только для моделей Ultralytics PyTorch. |
augment | bool | False | Включает аугментацию во время тестирования (TTA) для предсказаний, что потенциально повышает устойчивость обнаружения ценой снижения скорости инференса. Доступно только для моделей Ultralytics PyTorch. |
agnostic_nms | bool | False | Включает классово-агностическое подавление нену максимумов (NMS), подавляя перекрывающиеся ограничивающие рамки с более низким баллом для разных классов, а не только в рамках одного класса. Полезно в сценариях многоклассового детектирования, где перекрытие классов является обычным делом. При выводе без NMS (nms=False на YOLO26 или YOLOv10) это предотвращает появление одного и того же детектирования только с несколькими метками классов (дубликаты IoU=1.0) и не выполняет подавление на основе порога IoU между различными рамками. |
classes | list[int] | None | Фильтрует предсказания по набору идентификаторов классов. Возвращаются только обнаружения, принадлежащие указанным классам. Это полезно для фокусировки на релевантных объектах в задачах мультиклассового обнаружения. |
retina_masks | bool | False | Возвращает сегментационные маски высокого разрешения. При включении возвращаемые маски (masks.data) соответствуют исходному размеру изображения. При отключении они имеют размер изображения, использованный во время инференса. |
embed | list[int] | None | Определяет слои, из которых извлекаются векторы признаков или эмбеддинги. Используй model.embed(source) для эмбеддингов предпоследнего слоя или model.predict(source, embed=[layer]) для выбора конкретных слоёв. Это полезно для последующих задач, таких как кластеризация или поиск по сходству. Доступно только для моделей Ultralytics PyTorch. |
project | str | None | Имя каталога проекта, в котором сохраняются результаты предсказаний, если включён save. |
name | str | None | Имя запуска предсказания. Используется для создания подкаталога внутри каталога проекта, где сохраняются результаты предсказаний, если включён save. |
stream | bool | False | Включает эффективную по памяти обработку длинных видео или большого количества изображений, возвращая генератор объектов Results вместо одновременной загрузки всех кадров в память. |
verbose | bool | True | Управляет отображением подробных журналов инференса в терминале, обеспечивая обратную связь о процессе предсказания в реальном времени. |
compile | bool или str | False | Включает компиляцию графа torch.compile PyTorch 2.x с помощью backend='inductor'. Принимает значения True → "default", False → отключает функцию, а также строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если функция не поддерживается, используется eager-режим с предупреждением. |
channels_last | bool | None | Использует формат памяти channels_last (NHWC) для нативного инференса PyTorch. None автоматически включает его в Linux и Windows на CPU x86 с oneDNN и PyTorch версии 1.13 или новее, False отключает его, а True запрашивает его на поддерживаемых CPU x86 или устройствах CUDA. ARM64, MPS, старые версии PyTorch, CPU без oneDNN и экспортированные форматы, такие как TensorRT и ONNX, остаются без изменений. |
nms | bool, необязательно | None | Запускает вывод «один ко многим» с NMS по умолчанию (None или True). Установи False, чтобы использовать голову «один к одному» без NMS, если она доступна. Подробнее см. в руководстве по сквозному детектированию. |
Аргументы визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
show | bool | False | Если True, аннотированные изображения или видео отображаются в окне. Это полезно для получения визуальной обратной связи в процессе разработки или тестирования. |
save | bool | False or True | Включает сохранение размеченных изображений или видео в файлы. Это полезно для документирования, дальнейшего анализа или обмена результатами. По умолчанию имеет значение True при использовании CLI и False при использовании в Python. |
save_frames | bool | False | При обработке видео сохраняет отдельные кадры как изображения. Это полезно для извлечения определённых кадров или подробного покадрового анализа. |
save_txt | bool | False | Сохраняет результаты обнаружения в текстовый файл в формате [class] [x_center] [y_center] [width] [height] [confidence]. Это полезно для интеграции с другими инструментами анализа. |
save_conf | bool | False | Включает оценки уверенности в сохраняемых текстовых файлах. Повышает детализацию, доступную для постобработки и анализа. |
save_crop | bool | False | Сохраняет обрезанные изображения обнаруженных объектов. Это полезно для аугментации набора данных, анализа или создания специализированных наборов данных для определённых объектов. |
show_labels | bool | True | Отображает метки каждой детекции в визуальном результате. Даёт непосредственное представление об обнаруженных объектах. |
show_conf | bool | True | Отображает показатель уверенности для каждой детекции рядом с её меткой. Показывает, насколько модель уверена в каждой детекции. |
show_boxes | bool | True | Рисует ограничивающие рамки вокруг обнаруженных объектов. Необходимо для визуальной идентификации и определения местоположения объектов на изображениях или кадрах видео. |
line_width | int or None | None | Определяет толщину линий ограничивающих рамок. Если None, толщина линии автоматически настраивается в зависимости от размера изображения. Обеспечивает визуальную настройку для большей наглядности. |
Настройки валидации#
Настройки валидации моделей YOLO включают гиперпараметры и конфигурации для оценки производительности на валидационном наборе данных. Эти настройки влияют на производительность, скорость и точность. К распространённым настройкам относятся размер батча, частота валидации и метрики производительности. На процесс также влияют размер и состав валидационного набора данных, а также конкретная задача.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
data | str | None | Указывает путь к YAML-файлу набора данных (например, coco8.yaml), который должен содержать путь к данным валидации. Для классификации вместо этого указывается каталог набора данных или имя встроенного набора данных (например, imagenet10). |
imgsz | int | 640 | Задает размер входных изображений. Перед обработкой все изображения изменяются до этого размера. Большие размеры могут повысить точность для небольших объектов, но увеличивают время вычислений. |
batch | int | 16 | Задает количество изображений в пакете. Большие значения эффективнее используют память GPU, но требуют больше VRAM. Настрой значение с учетом доступных аппаратных ресурсов. |
save_json | bool | False | Если True, сохраняет результаты в JSON-файл для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, например COCO. |
conf | float | 0.001 | Задает минимальный порог уверенности для обнаружений. Меньшие значения повышают полноту, но могут привести к появлению большего числа ложноположительных результатов. По умолчанию кривые precision-recall используют 0.001; матрицы ошибок обнаружения используют явное значение conf или 0.25, если оно не задано. Сводные значения precision и recall используют уверенность при максимальном F1, поэтому они могут отличаться от значений, рассчитанных на основе confusion_matrix.png. Для валидации OBB по умолчанию используется 0.01, чтобы снизить потребление памяти. |
iou | float | 0.7 | Задает порог пересечения по объединению для подавления немаксимумов. Управляет устранением дублирующихся обнаружений. |
max_det | int | 300 | Ограничивает максимальное количество обнаружений на изображение. Для задач детекции, сегментации, позы и OBB при значении по умолчанию 300 оно увеличивается до наибольшего количества объектов с разметкой в валидационном наборе данных, если изображение превышает его, с выводом предупреждения; любое другое значение сохраняется с предупреждением о том, что полнота (recall) может быть ограничена при превышении лимита изображением. |
quantize | int или str | None | Точность валидации: 16/"fp16" и 32/"fp32"/не задано выбирают вычисления FP16 или FP32 для моделей PyTorch и TorchScript; остальные форматы выполняют вычисления с точностью, выбранной их артефактом и средой выполнения. При 16 OpenVINO по-прежнему выполняет FP16-округление входных данных на клиенте и расширяет их обратно до FP32, не меняя то, с какой точностью выполняет вычисления среда выполнения. Квантование INT8/PTQ настраивается во время экспорта, а затем используется путем валидации экспортированной модели. Заменяет устаревший флаг half. |
device | str | None | Указывает устройство для валидации (cpu, cuda:0, npu, npu:0 и т. д.). Если задано None, автоматически выбирается лучшее доступное устройство. Несколько устройств CUDA можно указать через запятую. |
dnn | bool | False | Если True, использует модуль DNN OpenCV для инференса моделей ONNX, предоставляя альтернативу методам инференса PyTorch. |
plots | bool | True | Если задано True, создает и сохраняет графики предсказаний и истинных значений, матрицы ошибок и PR-кривые для визуальной оценки производительности модели. |
classes | list[int] | None | Указывает список идентификаторов классов для оценки. Полезно для фильтрации и фокусировки только на определенных классах во время оценки. |
rect | bool | True | Если True, использует прямоугольный инференс при пакетной обработке, уменьшая дополнение и потенциально повышая скорость и эффективность за счет обработки изображений с исходным соотношением сторон. Не применяется при валидации depth, которая растягивает каждое изображение до фиксированного квадратного размера imgsz вместо дополнения. |
split | str | 'val' | Определяет раздел набора данных для валидации (val, test или train). Позволяет гибко выбирать сегмент данных для оценки производительности. |
project | str | None | Имя каталога проекта, в котором сохраняются результаты валидации. Помогает организовать результаты разных экспериментов или моделей. |
name | str | None | Имя запуска валидации. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты валидации. |
verbose | bool | True | Если True, отображает подробную информацию в процессе валидации, включая метрики по классам, прогресс обработки пакетов и дополнительные сведения для отладки. |
save_txt | bool | False | Если True, сохраняет результаты обнаружения в текстовых файлах — по одному файлу на изображение. Это полезно для дальнейшего анализа, пользовательской постобработки или интеграции с другими системами. |
save_conf | bool | False | Если True, включает значения уверенности в сохраняемые текстовые файлы, когда включен save_txt, предоставляя более подробные данные для анализа и фильтрации. |
workers | int | 8 | Количество рабочих потоков для загрузки данных. Большие значения могут ускорить предварительную обработку данных, но увеличить нагрузку на CPU. Значение 0 использует основной поток, что в некоторых средах может обеспечить большую стабильность. |
augment | bool | False | Включает аугментацию во время тестирования (TTA) при валидации, потенциально повышая точность обнаружения за счет скорости инференса, поскольку инференс выполняется на преобразованных версиях входных данных. Доступно только для моделей Ultralytics PyTorch. |
agnostic_nms | bool | False | Включает классово-агностическое подавление нену максимумов, подавляя перекрывающиеся ограничивающие рамки с более низким баллом независимо от их предсказанного класса. Полезно для приложений, ориентированных на экземпляры. При выводе без NMS (nms=False на YOLO26 или YOLOv10) это предотвращает появление одного и того же детектирования только с несколькими метками классов (дубликаты IoU=1.0) и не выполняет подавление на основе порога IoU между различными рамками. |
single_cls | bool | False | Рассматривает все классы как один класс во время валидации. Полезно для оценки производительности модели в задачах бинарного обнаружения или когда различия между классами не важны. |
visualize | bool | False | Визуализирует истинные значения, истинноположительные, ложноположительные и ложноотрицательные результаты для каждого изображения. Полезно для отладки и интерпретации модели. |
show_labels | bool | True | Отображает метки классов в визуализациях валидации, если задано visualize=True. Установи False, чтобы получить более наглядное представление совпадений и ошибок. |
show_conf | bool | True | Отображает оценки уверенности в визуализациях валидации, если задано visualize=True. Установи False, чтобы получить более наглядное представление совпадений и ошибок. |
compile | bool или str | False | Включает компиляцию графа torch.compile PyTorch 2.x с помощью backend='inductor'. Принимает значения True → "default", False → отключает функцию, а также строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если функция не поддерживается, используется eager-режим с предупреждением. |
channels_last | bool | None | Использует формат памяти channels_last (NHWC) для нативной валидации PyTorch. None автоматически включает его в Linux и Windows на CPU x86 с oneDNN и PyTorch 1.13 или новее, False отключает его, а True запрашивает его на поддерживаемых CPU x86 или устройствах CUDA. ARM64, MPS, старые версии PyTorch, CPU без oneDNN и экспортированные форматы остаются без изменений; валидация во время обучения сохраняет формат модели обучения. |
nms | bool, необязательно | None | Запускает вывод «один ко многим» с NMS по умолчанию (None или True). Установи False, чтобы использовать голову «один к одному» без NMS, если она доступна. Подробнее см. в руководстве по сквозному детектированию. |
Тщательная настройка и эксперименты имеют решающее значение для обеспечения оптимальной производительности, а также выявления и предотвращения переобучения.
Настройки экспорта#
Настройки экспорта моделей YOLO включают конфигурации для сохранения или экспорта модели с целью использования в разных средах. Эти настройки влияют на производительность, размер и совместимость. Ключевые настройки включают формат экспортированного файла (например, ONNX, TensorFlow SavedModel), целевое устройство (например, CPU, GPU) и такие функции, как маски. На процесс экспорта также влияют задача модели и ограничения целевой среды.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
format | str | 'torchscript' | Целевой формат экспортированной модели, например 'onnx', 'torchscript', 'engine' (TensorRT) или другие. Каждый формат обеспечивает совместимость с разными средами развёртывания. |
name | str | None | Имя аппаратной платформы для форматов, которым она необходима: архитектура Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; по умолчанию — 'hailo8l'), чип Rockchip RKNN (по умолчанию — 'rk3588'), SoC Huawei Ascend (CANN --soc_version; по умолчанию — 'Ascend310B4') или целевая платформа Qualcomm QNN HTP (по умолчанию — '73'). Не следует путать с парой project/name для именования запусков, используемой другими режимами. |
imgsz | int или tuple | 640 | Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений (например, 640 для 640×640) или кортежем (height, width) для конкретных размеров. Если значение не передано, экспорт использует размер обучения, записанный в загруженной контрольной точке: официальные контрольные точки YOLO26 содержат 768 для depth, 224 для classify, 1024 для OBB и 640 для остальных задач, тогда как дообученная модель сохраняет значение imgsz, с которым она обучалась. У модели, созданной из YAML, размер обучения не записан, поэтому используется 640. |
keras | bool | False | Включает экспорт в формат Keras для TensorFlow SavedModel, обеспечивая совместимость с сервисом TensorFlow и API. |
optimize | bool | False | Включает более высокий уровень оптимизации компилятора для DEEPX, уменьшая задержку инференса и увеличивая время компиляции. |
quantize | int или str | None | Точность квантизации: 16 (FP16, уменьшает размер модели и может ускорить инференс на поддерживаемом оборудовании) или 8 (INT8/PTQ, дополнительно сжимает модель с минимальной потерей точности, главным образом для периферийных устройств; требуется калибровка data/fraction); 32/неуказанное значение — FP32. Форматы экспорта, поддерживающие смешанную точность весов и активаций, также принимают обозначение 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Заменяет устаревшие флаги half/int8 (half=True → 16, int8=True → 8, по-прежнему принимаются с предупреждением об устаревании). Разрешены только варианты точности, поддерживаемые целевым форматом (см. ниже). |
dynamic | bool | False | Разрешает динамические размеры входных данных для экспортов TorchScript, ONNX, OpenVINO, TensorRT и CoreML, повышая гибкость при работе с изображениями разных размеров. |
simplify | bool | True | Упрощает промежуточный граф ONNX с помощью onnxslim для экспортов, которые его создают (см. раздел Форматы экспорта), что потенциально повышает производительность и совместимость с механизмами инференса. |
opset | int | None | Определяет версию opset ONNX для экспортов, создающих граф ONNX (см. раздел Форматы экспорта), обеспечивая совместимость с разными парсерами и средами выполнения ONNX. Если значение не задано, используется последняя поддерживаемая версия. |
workspace | float или None | None | Задаёт максимальный размер рабочего пространства в ГиБ для оптимизаций TensorRT, обеспечивая баланс между использованием памяти и производительностью. Используй None для автоматического выделения TensorRT в пределах максимального объёма устройства. |
nms | bool, необязательно | None | None экспортирует сырые предсказания «один ко многим» для внешнего NMS; True встраивает NMS там, где это поддерживается; False выбирает голову без NMS, если она доступна. Встроенный NMS для CoreML поддерживает детектирование, сегментацию и позу со статическими формами. См. руководство по сквозному детектированию. |
conf | float | None | Порог уверенности, используемый везде, где создаётся NMS во время экспорта: экспорты nms=True; экспорты обнаружения Hailo без сквозного режима; а также экспорты обнаружения, позы и сегментации IMX, которые внутренне принудительно используют nms=True. Если значение не задано, по умолчанию используется 0.25. |
iou | float | 0.7 | Порог IoU, используемый везде, где создаётся NMS во время экспорта: экспорты nms=True; экспорты обнаружения Hailo без сквозного режима; а также экспорты обнаружения, позы и сегментации IMX, которые внутренне принудительно используют nms=True. |
max_det | int | 300 | Максимальное количество обнаружений, сохраняемых в выводе экспортированной модели. Применяется к экспортам nms=True во всех форматах, кроме детекции CoreML, чей встроенный конвейер NMS не имеет ограничения на количество обнаружений, а также к экспортам детекции "end-to-end" без NMS (YOLO26, YOLOv10, с ограничением до числа доступных анкеров) и экспортам детекции, позы и сегментации IMX. |
agnostic_nms | bool | False | Включает независимое от класса NMS везде, где NMS во время экспорта создаётся через стандартный конвейер nms=True, включая собственный этап NMS CoreML, подавляя перекрывающиеся рамки с более низкими оценками между разными классами, а не только внутри одного класса. Этот параметр не учитывается собственными сгенерированными конфигурациями NMS Hailo и IMX, в которых нет опции независимости от класса и которые остаются зависимыми от класса независимо от этого флага. Он также встраивается в сквозные экспорты без NMS (YOLO26, YOLOv10), где предотвращает только появление одного обнаружения с несколькими метками классов (дубликаты IoU=1.0), но не подавляет различные рамки по порогу IoU. |
batch | int | 1 | Определяет размер батча инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. Для экспортов Edge TPU автоматически устанавливается значение 1. |
device | str | None | Определяет устройство для экспорта: GPU (device=0), CPU (device=cpu), MPS для Apple silicon (device=mps), NPU Huawei Ascend (device=npu или device=npu:0) или DLA для NVIDIA Jetson (device=dla:0 или device=dla:1). Экспорты TensorRT автоматически используют GPU, однако TensorRT 11.0 не поддерживает DLA. |
verbose | bool | False | Повышает уровень журналирования сборщика TensorRT до VERBOSE во время экспорта format='engine'. Другие форматы экспорта этот параметр игнорируют. |
data | str | None | Путь к YAML-файлу набора данных, необходимому для калибровки квантизации INT8; для классификации вместо него указывается каталог набора данных или имя встроенного набора данных. Если при включённом INT8 значение не указано, Ultralytics выбирает необходимый набор данных для калибровки в зависимости от задачи или использует набор данных по умолчанию для задачи модели. |
split | str | 'val' | Раздел набора данных ('train', 'val' или 'test'), используемый для создания загрузчика данных калибровки квантизации INT8 из data. |
fraction | float, int или list | 1.0 | Подмножество набора данных, используемое для калибровки INT8: доля, количество изображений или значения [train, val, test]. 1 означает весь раздел, целые числа больше 1 — количество изображений, а только необязательная запись test принимает 0/0.0 в значении «ни одного». Списки из двух элементов оставляют test полностью. |
Продуманная конфигурация гарантирует, что экспортированная модель оптимизирована для своего сценария использования и эффективно работает в целевой среде.
Настройки решений#
Настройки конфигурации Ultralytics Solutions позволяют гибко адаптировать модели для таких задач, как подсчёт объектов, создание тепловых карт, отслеживание тренировок, анализ данных, отслеживание зон, управление очередями и подсчёт объектов в областях. Эти параметры позволяют легко настраивать модели для получения точных и полезных результатов с учётом конкретных потребностей.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
region | list или dict | None | Точки, определяющие интересующую область: либо список кортежей (x, y), либо словарь, сопоставляющий названия регионов со списками точек для нескольких регионов (только RegionCounter). Если None, решения, которым нужен регион, используют заранее заданный регион по умолчанию. |
show_in | bool | True | Флаг, управляющий отображением количества входящих объектов в видеопотоке. |
show_out | bool | True | Флаг, управляющий отображением количества выходящих объектов в видеопотоке. |
analytics_type | str | 'line' | Тип графика: line, bar, area или pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Цветовая карта для тепловой карты. |
line_width | int | 2 | Толщина линий для рамок, ключевых точек и счётчиков, которые рисует решение. |
verbose | bool | True | Включает покадровый журнал решения с указанием формы входных данных, количества классов и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода. |
json_file | str | None | Путь к JSON-файлу, содержащему все данные о координатах парковки. |
up_angle | float | 145.0 | Порог угла для позы «вверх». |
kpts | list[int] | '[6, 8, 10]' | Список из трёх индексов ключевых точек, используемых для мониторинга тренировок. Эти ключевые точки соответствуют суставам или частям тела, например плечам, локтям и запястьям, для таких упражнений, как отжимания, подтягивания, приседания и упражнения на пресс. |
down_angle | int | 90 | Порог угла для позы «вниз». |
blur_ratio | float | 0.5 | Настраивает процент интенсивности размытия; допустимые значения находятся в диапазоне 0.1 - 1.0. |
crop_dir | str | 'cropped-detections' | Имя каталога для хранения обрезанных детекций. |
records | int | 5 | Общее количество детекций, необходимое для отправки электронного письма системой охранной сигнализации. |
vision_point | tuple[int, int] | (20, 20) | Точка, в которой VisionEye отслеживает объекты и рисует траектории с помощью решения VisionEye. |
source | str | None | Путь к источнику входных данных (видео, RTSP и т. д.). Доступно только через интерфейс командной строки Solutions (CLI). |
figsize | tuple[float, float] | (12.8, 7.2) | Размер рисунка для аналитических диаграмм, таких как тепловые карты или графики. |
fps | float | 30.0 | Количество кадров в секунду, используемое для расчёта скорости. |
max_hist | int | 5 | Максимальное количество исторических точек для каждого объекта, используемое при расчёте скорости и направления. |
meter_per_pixel | float | 0.05 | Масштабный коэффициент для преобразования расстояния в пикселях в единицы реального мира. |
max_speed | int | 120 | Максимальное ограничение скорости на визуальных наложениях (используется в оповещениях). |
data | str | 'images' | Путь к каталогу изображений, используемому для поиска похожих изображений. |
imgsz | int | 640 | Размер входного изображения для инференса модели. |
Настройки аугментации#
Методы аугментации данных необходимы для повышения устойчивости и производительности модели YOLO за счёт внесения разнообразия в обучающие данные, что помогает модели лучше обобщать на ранее не встречавшиеся данные. В следующей таблице описаны назначение и влияние каждого аргумента аугментации:
| Аргумент | Тип | По умолчанию | Поддерживаемые задачи | Диапазон | Описание |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Изменяет оттенок изображения на долю цветового круга, добавляя вариативность цветов. Помогает модели обобщать данные при разных условиях освещения. Для classify применяется только при auto_augment=None. |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Изменяет насыщенность изображения на указанную долю, влияя на интенсивность цветов. Полезно для имитации различных условий окружающей среды. Для classify применяется только при auto_augment=None. |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Изменяет значение (яркость) изображения на указанную долю, помогая модели хорошо работать при различных условиях освещения. Для classify применяется только при auto_augment=None. |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | Случайно поворачивает изображение в пределах указанного диапазона градусов, улучшая способность модели распознавать объекты в различных ориентациях. |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Сдвигает изображение по горизонтали и вертикали на долю его размера, помогая модели учиться обнаруживать частично видимые объекты. |
scale | float | tuple | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 или явный кортеж (min, max) (не для classify) | Масштабирует изображение с коэффициентом усиления, имитируя объекты на разных расстояниях от камеры. |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | Сдвигает части изображения под заданным углом, имитируя вид объектов с разных ракурсов. |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | Применяет к изображению случайное перспективное преобразование, улучшая способность модели понимать объекты в трёхмерном пространстве. |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Переворачивает изображение вверх ногами с указанной вероятностью, увеличивая разнообразие данных без изменения характеристик объекта. |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | Отражает изображение слева направо с указанной вероятностью, что полезно для обучения распознаванию симметричных объектов и повышения разнообразия набора данных. |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | Меняет порядок каналов изображения с RGB на BGR с указанной вероятностью, что полезно для повышения устойчивости к неправильному порядку каналов. |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Объединяет четыре обучающих изображения в одно, имитируя различные композиции сцен и взаимодействия объектов. Особенно эффективно для понимания сложных сцен. |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | Смешивает два изображения и их метки, создавая составное изображение. Повышает способность модели к обобщению за счёт добавления шума в метки и визуального разнообразия. |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | Объединяет части двух изображений, создавая частичное смешение при сохранении отдельных областей. Повышает устойчивость модели за счёт создания сценариев с перекрытием объектов. |
copy_paste | float | 0 | segment, obb | 0.0 - 1.0 | Доля подходящих объектов, которые вставляются; flip отражает их внутри изображения, а mixup также использует это значение как вероятность применения между изображениями. |
copy_paste_mode | str | flip | segment, obb | - | Задаёт стратегию copy-paste, которую следует использовать. Доступные варианты: 'flip' и 'mixup'. |
auto_augment | str | randaugment | classify | - | Применяет заданную политику аугментации ('randaugment', 'autoaugment' или 'augmix') для повышения производительности модели за счёт визуального разнообразия. |
erasing | float | 0.4 | classify | 0.0 - 1.0 | Случайно стирает области изображения во время обучения, побуждая модель сосредоточиться на менее очевидных признаках. |
augmentations | list | None | detect, segment, semantic, depth, pose, obb | - | Пользовательские преобразования Albumentations для расширенной аугментации данных (только Python API). Принимает список объектов преобразований для специализированных задач аугментации. |
Настрой эти параметры в соответствии с требованиями к датасету и задаче. Эксперименты с разными значениями помогут найти оптимальную стратегию аугментации для достижения наилучшей производительности модели.
Настройки журналирования, контрольных точек и построения графиков#
Журналирование, контрольные точки, построение графиков и управление файлами важны при обучении модели YOLO:
- Журналирование: Отслеживай прогресс модели и диагностируй проблемы с помощью таких библиотек, как TensorBoard, или записывая данные в файл.
- Контрольные точки: Сохраняй модель через регулярные интервалы, чтобы возобновлять обучение или экспериментировать с разными конфигурациями.
- Построение графиков: Визуализируй производительность и прогресс обучения с помощью таких библиотек, как Matplotlib или TensorBoard.
- Управление файлами: Организуй файлы, созданные во время обучения, например контрольные точки, файлы журналов и графики, чтобы упростить доступ к ним и анализ.
Эффективное управление этими аспектами помогает отслеживать прогресс и упрощает отладку и оптимизацию.
| Аргумент | По умолчанию | Описание |
|---|---|---|
project | None | Задаёт корневой каталог для сохранения запусков обучения. Если параметр не указан, запуски сохраняются в runs/<task>. Каждый запуск сохраняется в отдельном подкаталоге. |
name | None | Задаёт имя эксперимента. Если параметр не указан, YOLO использует имя режима и увеличивает его для каждого запуска (например, train, train-2), чтобы избежать перезаписи. |
exist_ok | False | Определяет, следует ли перезаписывать существующий каталог эксперимента. True разрешает перезапись, а False запрещает её. |
plots | True | Управляет созданием и сохранением графиков обучения и валидации. Установи значение True, чтобы создавать такие графики, как кривые потерь, кривые точности-полноты и примеры предсказаний для визуального отслеживания производительности. |
save | True | Включает сохранение контрольных точек обучения и весов финальной модели. Установи значение True, чтобы периодически сохранять состояния модели, позволяя возобновить обучение или развернуть модель. |
Пользовательский файл конфигурации#
Загрузи сохранённый YAML, чтобы повторно использовать полный набор аргументов без их передачи в командной строке. Аргумент cfg переопределяет значения из default.yaml, а дополнительные аргументы, переданные вместе с ним, всё равно имеют приоритет.
| Аргумент | По умолчанию | Описание |
|---|---|---|
cfg | None | Путь к YAML-файлу, значения которого заменяют записи default.yaml. Практический пример использования CLI см. в разделе Переопределение файла конфигурации по умолчанию. |
Часто задаваемые вопросы#
Повышай производительность, настраивая гиперпараметры, такие как размер батча, скорость обучения, momentum и затухание весов. Настрой параметры аугментации данных, выбери подходящий оптимизатор и используй такие методы, как ранняя остановка или смешанная точность. Подробнее см. в Руководстве по обучению.
К основным гиперпараметрам, влияющим на точность, относятся:
- Размер батча (
batch): Большие значения могут стабилизировать обучение, но требуют больше памяти. - Скорость обучения (
lr0): Меньшие значения обеспечивают более тонкую настройку, но замедляют сходимость. - Momentum (
momentum): Ускоряет движение векторов градиента и уменьшает колебания. - Размер изображения (
imgsz): Большие значения повышают точность, но увеличивают вычислительную нагрузку.
Настрой эти параметры с учётом своего датасета и оборудования. Подробнее см. в разделе Настройки обучения.
- Размер батча (
Скорость обучения (
lr0) имеет решающее значение; начни с0.01для SGD или0.001для оптимизатора Adam. Следи за метриками и при необходимости корректируй значение. Используй планировщики скорости обучения с косинусным затуханием (cos_lr) или разогрев (warmup_epochs,warmup_momentum). Подробнее см. в Руководстве по обучению.Параметры по умолчанию включают:
- Порог уверенности (
conf=0.25): Минимальная уверенность для обнаружений. - Порог IoU (
iou=0.7): Используется для подавления немаксимумов (NMS). - Размер изображения (
imgsz=640): Изменяет размер входных изображений. - Устройство (
device=None): Выбирает CPU, GPU, Apple MPS или NPU Huawei Ascend (npu).
Полный обзор см. в разделах Настройки предсказаний и Руководство по предсказаниям.
- Порог уверенности (
Обучение со смешанной точностью (
amp=True) снижает потребление памяти и ускоряет обучение за счёт использования FP16 и FP32. Этот подход особенно полезен для современных GPU: он позволяет использовать более крупные модели и выполнять вычисления быстрее без существенной потери точности. Подробнее см. в Руководстве по обучению.