Ultralytics YOLO27:

Конфигурация#

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

АргументПо умолчаниюОписание
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.

АргументТипПо умолчаниюОписание
modelstrNoneУказывает файл модели для обучения. Принимает путь либо к предварительно обученной модели .pt, либо к конфигурационному файлу .yaml. Необходим для определения структуры модели или инициализации весов.
datastrNoneПуть к YAML-файлу набора данных (например, coco8.yaml), в котором указаны пути к данным для обучения и валидации, имена классов и количество классов. Для классификации вместо этого указывается каталог набора данных или имя встроенного набора данных (например, imagenet10).
epochsint100Общее количество эпох обучения. Каждая эпоха представляет собой полный проход по всему набору данных. Изменение этого значения может повлиять на продолжительность обучения и производительность модели.
timefloatNoneМаксимальная продолжительность обучения в часах. Если задана, она переопределяет аргумент epochs, позволяя автоматически остановить обучение по истечении указанного времени. Полезно для сценариев обучения с ограничением по времени.
patienceint100Количество эпох, в течение которых нужно ожидать улучшения метрик валидации перед досрочной остановкой обучения. Помогает предотвратить переобучение, останавливая обучение, когда производительность перестаёт улучшаться.
batchint или float16Размер пакета с тремя режимами: целое число (например, batch=16), автоматический режим с использованием 60% памяти GPU (batch=-1) или автоматический режим с указанной долей использования (batch=0.70).
imgszint640Целевой размер изображения для обучения. Изображения изменяются до квадратов со сторонами указанного размера (если rect=False), при этом соотношение сторон сохраняется для моделей YOLO, но не для RT-DETR. Влияет на точность модели и вычислительную сложность.
saveboolTrueВключает сохранение контрольных точек обучения и финальных весов модели. Полезно для возобновления обучения или развёртывания модели.
save_periodint-1Частота сохранения контрольных точек модели, указанная в эпохах. Значение -1 отключает эту возможность. Полезно для сохранения промежуточных моделей во время длительных сеансов обучения.
cacheboolFalseВключает кэширование изображений набора данных в памяти (True/ram), на диске (disk) или отключает его (False). Ускоряет обучение за счёт сокращения дисковых операций ввода-вывода, но увеличивает потребление памяти.
deviceint или str или listNoneУказывает вычислительное устройство или устройства для обучения: один GPU (device=0), несколько GPU (device=[0,1]), CPU (device=cpu), MPS для Apple silicon (device=mps), NPU Huawei Ascend (device=npu:0 или device=npu:0,1), автоматический выбор незанятого GPU (device=-1) или нескольких незанятых GPU (device=[-1,-1]).
workersint8Количество рабочих потоков для загрузки данных (на каждый RANK при обучении на нескольких GPU). Влияет на скорость предварительной обработки данных и их подачи в модель, особенно в конфигурациях с несколькими GPU.
projectstrNoneИмя каталога проекта, в котором сохраняются результаты обучения. Позволяет организованно хранить разные эксперименты.
namestrNoneИмя запуска обучения. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты обучения.
exist_okboolFalseЕсли установлено значение True, разрешает перезаписывать существующий каталог проекта и запуска. Полезно для итеративных экспериментов без необходимости вручную удалять предыдущие результаты.
save_dirstrNoneУказывает точный каталог, в котором сохраняются результаты запуска, переопределяя комбинацию project/name. Путь используется как есть, без автоматического увеличения номера, поэтому последовательные запуски используют один и тот же каталог.
pretrainedbool или strTrueОпределяет, начинать ли обучение с предварительно обученных весов. Может иметь логическое значение или содержать строковый путь к загружаемым весам. pretrained=False выполняет обучение со случайно инициализированными весами, сохраняя архитектуру модели.
cls_remapboolTrueПри дообучении на разных наборах данных копирует строки предварительно обученной классификационной головы в новую модель там, где имена классов совпадают, поэтому пересекающиеся классы сохраняют изученное смещение, а также свои веса, если ширина головы не изменилась. Применяется независимо от того, различается ли количество классов или совпадает при другом порядке классов.
optimizerstr'auto'Выбор оптимизатора для обучения. Доступны варианты SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp или auto, чтобы выбрать AdamW или MuSGD на основе количества итераций обучения. Влияет на скорость и стабильность сходимости.
seedint0Задаёт случайное начальное значение для обучения, обеспечивая воспроизводимость результатов при запусках с одинаковыми конфигурациями.
deterministicboolTrueПринудительно использует детерминированные алгоритмы, обеспечивая воспроизводимость, но потенциально снижая производительность и скорость из-за ограничения на недетерминированные алгоритмы.
verboseboolTrueВключает подробный вывод во время обучения: индикаторы выполнения, метрики для каждой эпохи и дополнительная информация об обучении отображаются в консоли.
single_clsboolFalseВо время обучения рассматривает все классы в многоклассовых наборах данных как один класс. Полезно для задач бинарной классификации или когда важно наличие объекта, а не его классификация.
classeslist[int]NoneЗадаёт список идентификаторов классов для обучения. Полезно для фильтрации и выбора только определённых классов во время обучения.
rectboolFalseВключает стратегию минимального заполнения: изображения в пакете минимально дополняются до общего размера, при этом длина самой длинной стороны равна imgsz. Это может повысить эффективность и скорость, но повлиять на точность модели.
multi_scalefloat0.0Случайно изменяет imgsz в каждом пакете на +/- multi_scale (например, 0.25 -> от 0.75x до 1.25x), округляя значение до кратного шагу модели; 0.0 отключает многошкальное обучение.
cos_lrboolFalseИспользует косинусный планировщик скорости обучения, изменяя скорость обучения по косинусной кривой на протяжении эпох. Помогает управлять скоростью обучения для улучшения сходимости.
close_mosaicint10Отключает мозаичную аугментацию данных в последние N эпох, чтобы стабилизировать обучение перед завершением. Значение 0 отключает эту функцию.
resumeboolFalseПродолжает обучение с последней сохранённой контрольной точки. Автоматически загружает веса модели, состояние оптимизатора и номер эпохи, плавно продолжая обучение.
ampbool или strTrueЗадаёт точность обучения: True или "fp16" используют FP16, "bf16" использует BF16 на поддерживаемых устройствах CUDA, а False или "fp32" используют FP32.
quantizeint или strNoneУстанови значение 8 (или "int8") для обучения с учетом квантования (QAT), при котором выполняется точная настройка с искусственным квантованием в цикле, чтобы веса выдерживали экспорт в INT8. Смотри обучение с учетом квантования.
fractionfloat, int или list1.0Подмножество набора данных в виде доли/количества или списка [train, val, test]. 1 означает полное подмножество, целые числа больше 1 — количество изображений, а только необязательная запись для тестирования принимает 0/0.0 в значении «нет». Списки из двух элементов сохраняют полное тестовое подмножество.
profileboolFalseВключает профилирование скорости ONNX и TensorRT во время обучения, что полезно для оптимизации развёртывания модели.
freezeint или listNoneЗамораживает первые N слоёв модели или определённые слои по индексу либо имени модуля (23.cv2, без начального model.), уменьшая число обучаемых параметров. Полезно для дообучения или переноса обучения.
lr0float0.01Начальная скорость обучения (то есть SGD=1E-2, Adam=1E-3). Настройка этого значения критически важна для процесса оптимизации, поскольку влияет на скорость обновления весов модели.
lrffloat0.01Конечная скорость обучения как доля начальной скорости = (lr0 * lrf), используемая вместе с планировщиками для изменения скорости обучения с течением времени.
momentumfloat0.937Коэффициент момента для SGD или beta1 для оптимизаторов Adam, влияющий на учёт прошлых градиентов при текущем обновлении.
weight_decayfloat0.0005Член L2-регуляризации, штрафующий большие веса для предотвращения переобучения.
warmup_epochsfloat3.0Количество эпох для разогрева скорости обучения, при котором скорость обучения постепенно увеличивается от низкого значения до начальной скорости, чтобы стабилизировать обучение на раннем этапе.
warmup_momentumfloat0.8Начальный момент для фазы разогрева, который постепенно изменяется до заданного момента в течение периода разогрева.
warmup_bias_lrfloat0.1Скорость обучения параметров смещения во время фазы разогрева, помогающая стабилизировать обучение модели в первых эпохах. При значении по умолчанию optimizer='auto' автоматически устанавливается в 0.0, поэтому для его использования явно укажи оптимизатор.
distill_modelstrNoneПуть к контрольной точке модели-учителя (например, yolo26x.pt) для дистилляции знаний. Если значение задано, модель-ученик обучается с дополнительной функцией потерь дистилляции под руководством замороженной модели-учителя.
disfloat6.0Вес потерь дистилляции, добавляемых к стандартным потерям обнаружения. Более высокие значения усиливают влияние подсказок по признакам от модели-учителя.
boxfloat7.5Вес компонента потерь для рамок в функции потерь, влияющий на степень акцента на точном предсказании координат ограничивающих рамок.
clsfloat0.5Вес потерь классификации в общей функции потерь, влияющий на важность правильного предсказания класса относительно других компонентов.
cls_pwfloat0.0Степень взвешивания классов для обработки дисбаланса классов с использованием обратной частоты классов. 0.0 отключает взвешивание классов, 1.0 применяет полное взвешивание по обратной частоте. Значения от 0 до 1 обеспечивают частичное взвешивание.
dflfloat1.5Вес члена регрессии расстояния до рамки: distribution focal loss (DFL), если голова обнаружения использует reg_max > 1, или потери L1 для нормализованных расстояний до рамок в YOLO26 без DFL (reg_max: 1).
posefloat12.0Вес потерь позы в моделях, обучаемых для оценки позы, влияющий на степень акцента на точном предсказании ключевых точек позы.
kobjfloat1.0Вес потерь объектности ключевых точек в моделях оценки позы, обеспечивающий баланс между уверенностью обнаружения и точностью позы.
rlefloat1.0Вес потерь оценки остаточного логарифма правдоподобия в моделях оценки позы, влияющий на точность локализации ключевых точек.
anglefloat1.0Вес потерь угла в моделях OBB, влияющий на точность предсказания углов ориентированных ограничивающих рамок.
dlogfloat1.0Вес масштабно-инвариантных логарифмических потерь (SILog) в моделях оценки глубины — основного члена, определяющего точность глубины.
dgradfloat0.5Вес градиентных потерь в моделях оценки глубины, штрафующих ошибки на границах глубины и способствующих формированию более чётких границ поверхностей.
dlamfloat1.0Коэффициент фокусировки на дисперсии для потерь SILog в моделях оценки глубины. 1.0 делает потери полностью масштабно-инвариантными, а 0.0 сводит их к обычным логарифмическим потерям RMSE.
nbsint64Номинальный размер пакета для нормализации потерь.
overlap_maskboolTrueОпределяет, следует ли объединять маски объектов в одну маску для обучения или сохранять их отдельными для каждого объекта. При перекрытии меньшая маска накладывается поверх большей во время объединения.
mask_ratioint4Коэффициент уменьшения размера масок сегментации, влияющий на разрешение масок, используемых во время обучения.
dropoutfloat0.0Коэффициент dropout для регуляризации в задачах классификации, предотвращающий переобучение за счёт случайного исключения блоков во время обучения.
valboolTrueВключает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных.
nmsbool, необязательноNoneВыбирает голову вывода, используемую для валидации эпох, выбора контрольных точек и ранней остановки. None или True использует схему «один ко многим» с NMS; False использует голову без NMS, если она доступна. Обе головы сохраняют свои потери при обучении.
plotsboolTrueСоздаёт и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и ходе обучения.
compilebool или strFalseВключает компиляцию графа torch.compile PyTorch 2.x с помощью backend='inductor'. Принимает значения True"default", False → отключает функцию, а также строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если функция не поддерживается, используется eager-режим с предупреждением.
channels_lastboolNoneИспользует формат памяти channels_last (NHWC) для сверток во время обучения. None автоматически включает его на CUDA с PyTorch 1.11 или новее, за исключением Windows, где он показал меньшую скорость. False отключает его, а True явно запрашивает его. В PyTorch 1.10 и более старых версиях, на CPU и MPS по умолчанию остается NCHW.
max_detint300Максимальное количество обнаружений на изображение во время валидации при обучении. Для задач детекции, сегментации, позы и OBB значение по умолчанию 300 увеличивается до наибольшего количества объектов с разметкой в train/val только тогда, когда это количество превышает 300. Другие значения остаются фиксированными; превышение лимита вызывает предупреждение.
Примечание о настройках размера пакета

Аргумент batch предоставляет три варианта конфигурации:

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

Руководство по обучению

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

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

Аргументы инференса:

АргументТипПо умолчаниюОписание
sourcestr или int или NoneNoneОпределяет источник данных для инференса. Это может быть путь к изображению, видеофайл, каталог, URL или идентификатор устройства для потоковой передачи в реальном времени. Если источник не указан, в журнал записывается предупреждение, а модель использует встроенные демонстрационные ресурсы (ultralytics/assets или демонстрационный URL для OBB). Поддерживается широкий диапазон форматов и источников, что обеспечивает гибкое применение для разных типов входных данных.
conffloat0.25Задаёт минимальный порог уверенности для обнаружений. Объекты, обнаруженные с уверенностью ниже этого порога, игнорируются. Изменение этого значения может помочь сократить количество ложноположительных срабатываний.
ioufloat0.7Порог пересечения по объединению (IoU) для подавления немаксимумов (NMS). Меньшие значения приводят к меньшему числу обнаружений за счёт удаления перекрывающихся рамок, что полезно для уменьшения дубликатов.
imgszint или tuple640Целевой размер Letterbox. Целое число задаёт квадратный N×N, а кортеж — (height, width). При использовании rect=True фактический тензор может быть меньше этого целевого размера из-за дополнения до минимального прямоугольника. Используй rect=False для фиксированного размера. См. раздел Фиксированная форма и минимальный прямоугольник.
rectboolTrueЕсли True, по возможности используется дополнение до минимального прямоугольника (батч с одинаковой формой и поддерживаемый бэкенд). Если False, всегда выполняется дополнение до полного imgsz. См. раздел Фиксированная форма и минимальный прямоугольник.
quantizeint или strNoneТочность инференса: 16/"fp16" и 32/"fp32"/не задано выбирают вычисления FP16 или FP32 для моделей PyTorch и TorchScript; остальные форматы выполняют вычисления с точностью, выбранной их артефактом и средой выполнения. При 16 OpenVINO по-прежнему выполняет FP16-округление входных данных на клиенте и расширяет их обратно до FP32, не меняя то, с какой точностью выполняет вычисления среда выполнения. Квантование INT8/PTQ настраивается во время экспорта, а затем используется путем загрузки экспортированной модели. Заменяет устаревший флаг half.
devicestrNoneОпределяет устройство для инференса (например, cpu, cuda:0, 0, npu или npu:0). Позволяет выбрать CPU, конкретный GPU, NPU Huawei Ascend или другое вычислительное устройство для выполнения модели.
dnnboolFalseЕсли True, для инференса ONNX-модели используется модуль OpenCV DNN вместо ONNX Runtime.
datastrNoneПуть к YAML-файлу датасета (например, coco8.yaml), который считывается только для получения names и только в том случае, если загруженная модель не содержит собственных имён классов: это может быть экспорт стороннего разработчика или экспорт Ultralytics, отделённый от поставляемых вместе с ним метаданных. В противном случае такая модель сообщает class0, class1 и так далее.
batchint1Определяет размер батча для инференса (работает только если источник — каталог, видеофайл или файл .txt). Больший размер батча может повысить пропускную способность и сократить общее время инференса.
max_detint300Максимальное количество обнаружений, разрешённых для одного изображения. Ограничивает общее число объектов, которые модель может обнаружить за один инференс, предотвращая чрезмерное количество выходных данных в плотных сценах.
vid_strideint1Шаг кадров для видеовходов. Позволяет пропускать кадры в видео, ускоряя обработку ценой снижения временного разрешения. Значение 1 обрабатывает каждый кадр, а большие значения пропускают кадры.
stream_bufferboolFalseОпределяет, следует ли помещать входящие кадры в очередь для видеопотоков. Если False, старые кадры отбрасываются для обработки новых кадров (оптимизировано для приложений реального времени). Если True, новые кадры помещаются в буфер, поэтому ни один кадр не пропускается, но возникает задержка, если FPS инференса ниже FPS потока.
visualizeboolFalseСохраняет тепловую карту активации классов рядом с каждым предсказанием, показывая, какие пиксели повысили оценки предсказанного класса. Учитывает conf и classes, поэтому classes=[0] отображает только этот класс. Доступно только для моделей Ultralytics PyTorch.
augmentboolFalseВключает аугментацию во время тестирования (TTA) для предсказаний, что потенциально повышает устойчивость обнаружения ценой снижения скорости инференса. Доступно только для моделей Ultralytics PyTorch.
agnostic_nmsboolFalseВключает классово-агностическое подавление нену максимумов (NMS), подавляя перекрывающиеся ограничивающие рамки с более низким баллом для разных классов, а не только в рамках одного класса. Полезно в сценариях многоклассового детектирования, где перекрытие классов является обычным делом. При выводе без NMS (nms=False на YOLO26 или YOLOv10) это предотвращает появление одного и того же детектирования только с несколькими метками классов (дубликаты IoU=1.0) и не выполняет подавление на основе порога IoU между различными рамками.
classeslist[int]NoneФильтрует предсказания по набору идентификаторов классов. Возвращаются только обнаружения, принадлежащие указанным классам. Это полезно для фокусировки на релевантных объектах в задачах мультиклассового обнаружения.
retina_masksboolFalseВозвращает сегментационные маски высокого разрешения. При включении возвращаемые маски (masks.data) соответствуют исходному размеру изображения. При отключении они имеют размер изображения, использованный во время инференса.
embedlist[int]NoneОпределяет слои, из которых извлекаются векторы признаков или эмбеддинги. Используй model.embed(source) для эмбеддингов предпоследнего слоя или model.predict(source, embed=[layer]) для выбора конкретных слоёв. Это полезно для последующих задач, таких как кластеризация или поиск по сходству. Доступно только для моделей Ultralytics PyTorch.
projectstrNoneИмя каталога проекта, в котором сохраняются результаты предсказаний, если включён save.
namestrNoneИмя запуска предсказания. Используется для создания подкаталога внутри каталога проекта, где сохраняются результаты предсказаний, если включён save.
streamboolFalseВключает эффективную по памяти обработку длинных видео или большого количества изображений, возвращая генератор объектов Results вместо одновременной загрузки всех кадров в память.
verboseboolTrueУправляет отображением подробных журналов инференса в терминале, обеспечивая обратную связь о процессе предсказания в реальном времени.
compilebool или strFalseВключает компиляцию графа torch.compile PyTorch 2.x с помощью backend='inductor'. Принимает значения True"default", False → отключает функцию, а также строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если функция не поддерживается, используется eager-режим с предупреждением.
channels_lastboolNoneИспользует формат памяти 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, остаются без изменений.
nmsbool, необязательноNoneЗапускает вывод «один ко многим» с NMS по умолчанию (None или True). Установи False, чтобы использовать голову «один к одному» без NMS, если она доступна. Подробнее см. в руководстве по сквозному детектированию.

Аргументы визуализации:

АргументТипПо умолчаниюОписание
showboolFalseЕсли True, аннотированные изображения или видео отображаются в окне. Это полезно для получения визуальной обратной связи в процессе разработки или тестирования.
saveboolFalse or TrueВключает сохранение размеченных изображений или видео в файлы. Это полезно для документирования, дальнейшего анализа или обмена результатами. По умолчанию имеет значение True при использовании CLI и False при использовании в Python.
save_framesboolFalseПри обработке видео сохраняет отдельные кадры как изображения. Это полезно для извлечения определённых кадров или подробного покадрового анализа.
save_txtboolFalseСохраняет результаты обнаружения в текстовый файл в формате [class] [x_center] [y_center] [width] [height] [confidence]. Это полезно для интеграции с другими инструментами анализа.
save_confboolFalseВключает оценки уверенности в сохраняемых текстовых файлах. Повышает детализацию, доступную для постобработки и анализа.
save_cropboolFalseСохраняет обрезанные изображения обнаруженных объектов. Это полезно для аугментации набора данных, анализа или создания специализированных наборов данных для определённых объектов.
show_labelsboolTrueОтображает метки каждой детекции в визуальном результате. Даёт непосредственное представление об обнаруженных объектах.
show_confboolTrueОтображает показатель уверенности для каждой детекции рядом с её меткой. Показывает, насколько модель уверена в каждой детекции.
show_boxesboolTrueРисует ограничивающие рамки вокруг обнаруженных объектов. Необходимо для визуальной идентификации и определения местоположения объектов на изображениях или кадрах видео.
line_widthint or NoneNoneОпределяет толщину линий ограничивающих рамок. Если None, толщина линии автоматически настраивается в зависимости от размера изображения. Обеспечивает визуальную настройку для большей наглядности.

Руководство по предсказаниям

Настройки валидации#

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

АргументТипПо умолчаниюОписание
datastrNoneУказывает путь к YAML-файлу набора данных (например, coco8.yaml), который должен содержать путь к данным валидации. Для классификации вместо этого указывается каталог набора данных или имя встроенного набора данных (например, imagenet10).
imgszint640Задает размер входных изображений. Перед обработкой все изображения изменяются до этого размера. Большие размеры могут повысить точность для небольших объектов, но увеличивают время вычислений.
batchint16Задает количество изображений в пакете. Большие значения эффективнее используют память GPU, но требуют больше VRAM. Настрой значение с учетом доступных аппаратных ресурсов.
save_jsonboolFalseЕсли True, сохраняет результаты в файл JSON для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, такие как COCO. На датасетах обнаружения она также оценивает предсказания с помощью faster-coco-eval и сообщает mAP для малых, средних и больших объектов, регистрируемый во время обучения как metrics/mAP_small(B), metrics/mAP_medium(B) и metrics/mAP_large(B) в results.csv.
conffloat0.001Задает минимальный порог уверенности для обнаружений. Меньшие значения повышают полноту, но могут привести к появлению большего числа ложноположительных результатов. По умолчанию кривые precision-recall используют 0.001; матрицы ошибок обнаружения используют явное значение conf или 0.25, если оно не задано. Сводные значения precision и recall используют уверенность при максимальном F1, поэтому они могут отличаться от значений, рассчитанных на основе confusion_matrix.png. Для валидации OBB по умолчанию используется 0.01, чтобы снизить потребление памяти.
ioufloat0.7Задает порог пересечения по объединению для подавления немаксимумов. Управляет устранением дублирующихся обнаружений.
max_detint300Ограничивает максимальное количество обнаружений на изображение. Для задач детекции, сегментации, позы и OBB при значении по умолчанию 300 оно увеличивается до наибольшего количества объектов с разметкой в валидационном наборе данных, если изображение превышает его, с выводом предупреждения; любое другое значение сохраняется с предупреждением о том, что полнота (recall) может быть ограничена при превышении лимита изображением.
quantizeint или strNoneТочность валидации: 16/"fp16" и 32/"fp32"/не задано выбирают вычисления FP16 или FP32 для моделей PyTorch и TorchScript; остальные форматы выполняют вычисления с точностью, выбранной их артефактом и средой выполнения. При 16 OpenVINO по-прежнему выполняет FP16-округление входных данных на клиенте и расширяет их обратно до FP32, не меняя то, с какой точностью выполняет вычисления среда выполнения. Квантование INT8/PTQ настраивается во время экспорта, а затем используется путем валидации экспортированной модели. Заменяет устаревший флаг half.
devicestrNoneУказывает устройство для валидации (cpu, cuda:0, npu, npu:0 и т. д.). Если задано None, автоматически выбирается лучшее доступное устройство. Несколько устройств CUDA можно указать через запятую.
dnnboolFalseЕсли True, использует модуль DNN OpenCV для инференса моделей ONNX, предоставляя альтернативу методам инференса PyTorch.
plotsboolTrueЕсли задано True, создает и сохраняет графики предсказаний и истинных значений, матрицы ошибок и PR-кривые для визуальной оценки производительности модели.
classeslist[int]NoneУказывает список идентификаторов классов для оценки. Полезно для фильтрации и фокусировки только на определенных классах во время оценки.
rectboolTrueЕсли True, использует прямоугольный инференс при пакетной обработке, уменьшая дополнение и потенциально повышая скорость и эффективность за счет обработки изображений с исходным соотношением сторон. Не применяется при валидации depth, которая растягивает каждое изображение до фиксированного квадратного размера imgsz вместо дополнения.
splitstr'val'Определяет раздел набора данных для валидации (val, test или train). Позволяет гибко выбирать сегмент данных для оценки производительности.
fractionfloat, int или list1.0Подмножество проверенной выборки. С помощью списка [train, val, test] применяется элемент, соответствующий split (1 = полная выборка, целые числа больше 1 = количество изображений; пропущенные элементы являются полными). Скаляр применяется только с split=train; тогда val и test используют полную выборку.
projectstrNoneИмя каталога проекта, в котором сохраняются результаты валидации. Помогает организовать результаты разных экспериментов или моделей.
namestrNoneИмя запуска валидации. Используется для создания подкаталога в папке проекта, где хранятся журналы и результаты валидации.
verboseboolTrueЕсли True, отображает подробную информацию в процессе валидации, включая метрики по классам, прогресс обработки пакетов и дополнительные сведения для отладки.
save_txtboolFalseЕсли True, сохраняет результаты обнаружения в текстовых файлах — по одному файлу на изображение. Это полезно для дальнейшего анализа, пользовательской постобработки или интеграции с другими системами.
save_confboolFalseЕсли True, включает значения уверенности в сохраняемые текстовые файлы, когда включен save_txt, предоставляя более подробные данные для анализа и фильтрации.
workersint8Количество рабочих потоков для загрузки данных. Большие значения могут ускорить предварительную обработку данных, но увеличить нагрузку на CPU. Значение 0 использует основной поток, что в некоторых средах может обеспечить большую стабильность.
augmentboolFalseВключает аугментацию во время тестирования (TTA) при валидации, потенциально повышая точность обнаружения за счет скорости инференса, поскольку инференс выполняется на преобразованных версиях входных данных. Доступно только для моделей Ultralytics PyTorch.
agnostic_nmsboolFalseВключает классово-агностическое подавление нену максимумов, подавляя перекрывающиеся ограничивающие рамки с более низким баллом независимо от их предсказанного класса. Полезно для приложений, ориентированных на экземпляры. При выводе без NMS (nms=False на YOLO26 или YOLOv10) это предотвращает появление одного и того же детектирования только с несколькими метками классов (дубликаты IoU=1.0) и не выполняет подавление на основе порога IoU между различными рамками.
single_clsboolFalseРассматривает все классы как один класс во время валидации. Полезно для оценки производительности модели в задачах бинарного обнаружения или когда различия между классами не важны.
visualizeboolFalseВизуализирует истинные значения, истинноположительные, ложноположительные и ложноотрицательные результаты для каждого изображения. Полезно для отладки и интерпретации модели.
show_labelsboolTrueОтображает метки классов в визуализациях валидации, если задано visualize=True. Установи False, чтобы получить более наглядное представление совпадений и ошибок.
show_confboolTrueОтображает оценки уверенности в визуализациях валидации, если задано visualize=True. Установи False, чтобы получить более наглядное представление совпадений и ошибок.
compilebool или strFalseВключает компиляцию графа torch.compile PyTorch 2.x с помощью backend='inductor'. Принимает значения True"default", False → отключает функцию, а также строковый режим, например "default", "reduce-overhead", "max-autotune-no-cudagraphs". Если функция не поддерживается, используется eager-режим с предупреждением.
channels_lastboolNoneИспользует формат памяти channels_last (NHWC) для нативной валидации PyTorch. None автоматически включает его в Linux и Windows на CPU x86 с oneDNN и PyTorch 1.13 или новее, False отключает его, а True запрашивает его на поддерживаемых CPU x86 или устройствах CUDA. ARM64, MPS, старые версии PyTorch, CPU без oneDNN и экспортированные форматы остаются без изменений; валидация во время обучения сохраняет формат модели обучения.
nmsbool, необязательноNoneЗапускает вывод «один ко многим» с NMS по умолчанию (None или True). Установи False, чтобы использовать голову «один к одному» без NMS, если она доступна. Подробнее см. в руководстве по сквозному детектированию.

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

Руководство по валидации

Настройки экспорта#

Настройки экспорта моделей YOLO включают конфигурации для сохранения или экспорта модели с целью использования в разных средах. Эти настройки влияют на производительность, размер и совместимость. Ключевые настройки включают формат экспортированного файла (например, ONNX, TensorFlow SavedModel), целевое устройство (например, CPU, GPU) и такие функции, как маски. На процесс экспорта также влияют задача модели и ограничения целевой среды.

АргументТипПо умолчаниюОписание
formatstr'torchscript'Целевой формат экспортированной модели, например 'onnx', 'torchscript', 'engine' (TensorRT) или другие. Каждый формат обеспечивает совместимость с разными средами развёртывания.
namestrNoneИмя аппаратной платформы для форматов, которым она необходима: архитектура Hailo ('hailo8', 'hailo8l', 'hailo10h', 'hailo15h', 'hailo15l'; по умолчанию — 'hailo8l'), чип Rockchip RKNN (по умолчанию — 'rk3588'), SoC Huawei Ascend (CANN --soc_version; по умолчанию — 'Ascend310B4') или целевая платформа Qualcomm QNN HTP (по умолчанию — '73'). Не следует путать с парой project/name для именования запусков, используемой другими режимами.
imgszint или tuple640Желаемый размер изображения для входных данных модели. Может быть целым числом для квадратных изображений (например, 640 для 640×640) или кортежем (height, width) для конкретных размеров. Если значение не передано, экспорт использует размер обучения, записанный в загруженной контрольной точке: официальные контрольные точки YOLO26 содержат 768 для depth, 224 для classify, 1024 для OBB и 640 для остальных задач, тогда как дообученная модель сохраняет значение imgsz, с которым она обучалась. У модели, созданной из YAML, размер обучения не записан, поэтому используется 640.
kerasboolFalseВключает экспорт в формат Keras для TensorFlow SavedModel, обеспечивая совместимость с сервисом TensorFlow и API.
optimizeboolFalseВключает более высокий уровень оптимизации компилятора для DEEPX, уменьшая задержку инференса и увеличивая время компиляции.
quantizeint или strNoneТочность квантования: 16 (FP16, уменьшает размер модели и может ускорить инференс на поддерживаемом оборудовании) или 8 (INT8/PTQ, дополнительно сжимает модель с минимальной потерей точности, в основном для краевых устройств; требуется калибровка data/fraction); 32/не задано — это FP32. Чекпоинт, обученный с помощью quantize=8, всегда экспортирует INT8: onnx и engine выполняют экспорт из диапазонов, которые он содержит, без калибровки, а другие форматы или точности отклоняются. Форматы экспорта, поддерживающие смешанную точность весов и активаций, также принимают обозначение 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Заменяет устаревшие флаги half/int8 (half=True16, int8=True8, по-прежнему принимаются с предупреждением об устаревании). Допускаются только точности, поддерживаемые целевым форматом (см. ниже).
dynamicboolFalseРазрешает динамические размеры входных данных для экспортов TorchScript, ONNX, OpenVINO, TensorRT и CoreML, повышая гибкость при работе с изображениями разных размеров.
simplifyboolTrueУпрощает промежуточный граф ONNX с помощью onnxslim для экспортов, которые его создают (см. раздел Форматы экспорта), что потенциально повышает производительность и совместимость с механизмами инференса.
opsetintNoneОпределяет версию opset ONNX для экспортов, создающих граф ONNX (см. раздел Форматы экспорта), обеспечивая совместимость с разными парсерами и средами выполнения ONNX. Если значение не задано, используется последняя поддерживаемая версия.
workspacefloat или NoneNoneЗадаёт максимальный размер рабочего пространства в ГиБ для оптимизаций TensorRT, обеспечивая баланс между использованием памяти и производительностью. Используй None для автоматического выделения TensorRT в пределах максимального объёма устройства.
nmsbool, необязательноNoneNone экспортирует сырые предсказания «один ко многим» для внешнего NMS; True встраивает NMS там, где это поддерживается; False выбирает голову без NMS, если она доступна. Встроенный NMS для CoreML поддерживает детектирование, сегментацию и позу со статическими формами. См. руководство по сквозному детектированию.
conffloatNoneПорог уверенности, используемый везде, где создаётся NMS во время экспорта: экспорты nms=True; экспорты обнаружения Hailo без сквозного режима; а также экспорты обнаружения, позы и сегментации IMX, которые внутренне принудительно используют nms=True. Если значение не задано, по умолчанию используется 0.25.
ioufloat0.7Порог IoU, используемый везде, где создаётся NMS во время экспорта: экспорты nms=True; экспорты обнаружения Hailo без сквозного режима; а также экспорты обнаружения, позы и сегментации IMX, которые внутренне принудительно используют nms=True.
max_detint300Максимальное количество обнаружений, сохраняемых в выводе экспортированной модели. Применяется к экспортам nms=True во всех форматах, кроме детекции CoreML, чей встроенный конвейер NMS не имеет ограничения на количество обнаружений, а также к экспортам детекции "end-to-end" без NMS (YOLO26, YOLOv10, с ограничением до числа доступных анкеров) и экспортам детекции, позы и сегментации IMX.
agnostic_nmsboolFalseВключает независимое от класса NMS везде, где NMS во время экспорта создаётся через стандартный конвейер nms=True, включая собственный этап NMS CoreML, подавляя перекрывающиеся рамки с более низкими оценками между разными классами, а не только внутри одного класса. Этот параметр не учитывается собственными сгенерированными конфигурациями NMS Hailo и IMX, в которых нет опции независимости от класса и которые остаются зависимыми от класса независимо от этого флага. Он также встраивается в сквозные экспорты без NMS (YOLO26, YOLOv10), где предотвращает только появление одного обнаружения с несколькими метками классов (дубликаты IoU=1.0), но не подавляет различные рамки по порогу IoU.
batchint1Определяет размер батча инференса экспортированной модели или максимальное количество изображений, которые экспортированная модель будет обрабатывать одновременно в режиме predict. Для экспортов Edge TPU автоматически устанавливается значение 1.
devicestrNoneОпределяет устройство для экспорта: 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.
verboseboolFalseПовышает уровень журналирования сборщика TensorRT до VERBOSE во время экспорта format='engine'. Другие форматы экспорта этот параметр игнорируют.
datastrNoneПуть к YAML датасета, необходимый для калибровки квантования INT8; для классификации вместо этого используется каталог датасета или встроенное имя датасета. Если он не указан при включенном INT8, Ultralytics выбирает калибровочный датасет для конкретной задачи там, где это необходимо, или возвращается к датасету по умолчанию для задачи модели. Чекпоинт, обученный с помощью quantize=8, содержит собственные диапазоны INT8 и не нуждается в калибровочных данных.
splitstr'val'Раздел набора данных ('train', 'val' или 'test'), используемый для создания загрузчика данных калибровки квантизации INT8 из data.
fractionfloat, int или list1.0Подмножество набора данных, используемое для калибровки INT8: доля, количество изображений или значения [train, val, test]. 1 означает весь раздел, целые числа больше 1 — количество изображений, а только необязательная запись test принимает 0/0.0 в значении «ни одного». Списки из двух элементов оставляют test полностью.

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

Руководство по экспорту

Настройки решений#

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

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
regionlist или dictNoneТочки, определяющие интересующую область: либо список кортежей (x, y), либо словарь, сопоставляющий названия регионов со списками точек для нескольких регионов (только RegionCounter). Если None, решения, которым нужен регион, используют заранее заданный регион по умолчанию.
show_inboolTrueФлаг, управляющий отображением количества входящих объектов в видеопотоке.
show_outboolTrueФлаг, управляющий отображением количества выходящих объектов в видеопотоке.
analytics_typestr'line'Тип графика: line, bar, area или pie.
colormapintcv2.COLORMAP_DEEPGREENЦветовая карта для тепловой карты.
line_widthint2Толщина линий для рамок, ключевых точек и счётчиков, которые рисует решение.
verboseboolTrueВключает покадровый журнал решения с указанием формы входных данных, количества классов и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода.
json_filestrNoneПуть к JSON-файлу, содержащему все данные о координатах парковки.
up_anglefloat145.0Порог угла для позы «вверх».
kptslist[int]'[6, 8, 10]'Список из трёх индексов ключевых точек, используемых для мониторинга тренировок. Эти ключевые точки соответствуют суставам или частям тела, например плечам, локтям и запястьям, для таких упражнений, как отжимания, подтягивания, приседания и упражнения на пресс.
down_angleint90Порог угла для позы «вниз».
blur_ratiofloat0.5Настраивает процент интенсивности размытия; допустимые значения находятся в диапазоне 0.1 - 1.0.
crop_dirstr'cropped-detections'Имя каталога для хранения обрезанных детекций.
recordsint5Общее количество детекций, необходимое для отправки электронного письма системой охранной сигнализации.
vision_pointtuple[int, int](20, 20)Точка, в которой VisionEye отслеживает объекты и рисует траектории с помощью решения VisionEye.
sourcestrNoneПуть к источнику входных данных (видео, RTSP и т. д.). Доступно только через интерфейс командной строки Solutions (CLI).
figsizetuple[float, float](12.8, 7.2)Размер рисунка для аналитических диаграмм, таких как тепловые карты или графики.
fpsfloat30.0Количество кадров в секунду, используемое для расчёта скорости.
max_histint5Максимальное количество исторических точек для каждого объекта, используемое при расчёте скорости и направления.
meter_per_pixelfloat0.05Масштабный коэффициент для преобразования расстояния в пикселях в единицы реального мира.
max_speedint120Максимальное ограничение скорости на визуальных наложениях (используется в оповещениях).
datastr'images'Путь к каталогу изображений, используемому для поиска похожих изображений.
imgszint640Размер входного изображения для инференса модели.

Руководство по решениям

Настройки аугментации#

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

АргументТипПо умолчаниюПоддерживаемые задачиДиапазонОписание
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Изменяет оттенок изображения на долю цветового круга, добавляя вариативность цветов. Помогает модели обобщать данные при разных условиях освещения. Для classify применяется только при auto_augment=None.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Изменяет насыщенность изображения на указанную долю, влияя на интенсивность цветов. Полезно для имитации различных условий окружающей среды. Для classify применяется только при auto_augment=None.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Изменяет значение (яркость) изображения на указанную долю, помогая модели хорошо работать при различных условиях освещения. Для classify применяется только при auto_augment=None.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180Случайно поворачивает изображение в пределах указанного диапазона градусов, улучшая способность модели распознавать объекты в различных ориентациях.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0Сдвигает изображение по горизонтали и вертикали на долю его размера, помогая модели учиться обнаруживать частично видимые объекты.
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1 или явный кортеж (min, max) (не для classify)Масштабирует изображение с коэффициентом усиления, имитируя объекты на разных расстояниях от камеры.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180Сдвигает части изображения под заданным углом, имитируя вид объектов с разных ракурсов.
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001Применяет к изображению случайное перспективное преобразование, улучшая способность модели понимать объекты в трёхмерном пространстве.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Переворачивает изображение вверх ногами с указанной вероятностью, увеличивая разнообразие данных без изменения характеристик объекта.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Отражает изображение слева направо с указанной вероятностью, что полезно для обучения распознаванию симметричных объектов и повышения разнообразия набора данных.
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0Меняет порядок каналов изображения с RGB на BGR с указанной вероятностью, что полезно для повышения устойчивости к неправильному порядку каналов.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0Объединяет четыре обучающих изображения в одно, имитируя различные композиции сцен и взаимодействия объектов. Особенно эффективно для понимания сложных сцен.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0Смешивает два изображения и их метки, создавая составное изображение. Повышает способность модели к обобщению за счёт добавления шума в метки и визуального разнообразия.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Объединяет части двух изображений, создавая частичное смешение при сохранении отдельных областей. Повышает устойчивость модели за счёт создания сценариев с перекрытием объектов.
copy_pastefloat0segment, obb0.0 - 1.0Доля подходящих объектов, которые вставляются; flip отражает их внутри изображения, а mixup также использует это значение как вероятность применения между изображениями.
copy_paste_modestrflipsegment, obb-Задаёт стратегию copy-paste, которую следует использовать. Доступные варианты: 'flip' и 'mixup'.
auto_augmentstrrandaugmentclassify-Применяет заданную политику аугментации ('randaugment', 'autoaugment' или 'augmix') для повышения производительности модели за счёт визуального разнообразия.
erasingfloat0.4classify0.0 - 1.0Случайно стирает области изображения во время обучения, побуждая модель сосредоточиться на менее очевидных признаках.
augmentationslistNonedetect, segment, semantic, depth, pose, obb-Пользовательские преобразования Albumentations для расширенной аугментации данных (только Python API). Принимает список объектов преобразований для специализированных задач аугментации.

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

Руководство по аугментации

Настройки журналирования, контрольных точек и построения графиков#

Журналирование, контрольные точки, построение графиков и управление файлами важны при обучении модели YOLO:

  • Журналирование: Отслеживай прогресс модели и диагностируй проблемы с помощью таких библиотек, как TensorBoard, или записывая данные в файл.
  • Контрольные точки: Сохраняй модель через регулярные интервалы, чтобы возобновлять обучение или экспериментировать с разными конфигурациями.
  • Построение графиков: Визуализируй производительность и прогресс обучения с помощью таких библиотек, как Matplotlib или TensorBoard.
  • Управление файлами: Организуй файлы, созданные во время обучения, например контрольные точки, файлы журналов и графики, чтобы упростить доступ к ним и анализ.

Эффективное управление этими аспектами помогает отслеживать прогресс и упрощает отладку и оптимизацию.

АргументПо умолчаниюОписание
projectNoneЗадаёт корневой каталог для сохранения запусков обучения. Если параметр не указан, запуски сохраняются в runs/<task>. Каждый запуск сохраняется в отдельном подкаталоге.
nameNoneЗадаёт имя эксперимента. Если параметр не указан, YOLO использует имя режима и увеличивает его для каждого запуска (например, train, train-2), чтобы избежать перезаписи.
exist_okFalseОпределяет, следует ли перезаписывать существующий каталог эксперимента. True разрешает перезапись, а False запрещает её.
plotsTrueУправляет созданием и сохранением графиков обучения и валидации. Установи значение True, чтобы создавать такие графики, как кривые потерь, кривые точности-полноты и примеры предсказаний для визуального отслеживания производительности.
saveTrueВключает сохранение контрольных точек обучения и весов финальной модели. Установи значение True, чтобы периодически сохранять состояния модели, позволяя возобновить обучение или развернуть модель.

Пользовательский файл конфигурации#

Загрузи сохранённый YAML, чтобы повторно использовать полный набор аргументов без их передачи в командной строке. Аргумент cfg переопределяет значения из default.yaml, а дополнительные аргументы, переданные вместе с ним, всё равно имеют приоритет.

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

Комментарии