Конфигурация#
Настройки и гиперпараметры 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): Семантическая сегментация присваивает метку класса каждому пикселю на изображении для детального понимания сцены. - Глубина (
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), Huawei Ascend NPU (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, разрешает перезапись существующей директории project/name. Полезно для итеративных экспериментов без необходимости вручную очищать предыдущие результаты. |
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 | Устанавливает случайное зерно (seed) для обучения, обеспечивая воспроизводимость результатов между запусками с одинаковыми конфигурациями. |
deterministic | bool | True | Принудительно использует детерминированный алгоритм, обеспечивая воспроизводимость, но это может повлиять на производительность и скорость из-за ограничений на недетерминированные алгоритмы. |
verbose | bool | True | Включает подробный вывод данных во время обучения, отображая индикаторы выполнения, метрики для каждой эпохи и дополнительную информацию об обучении в консоли. |
single_cls | bool | False | Рассматривает все классы в многоклассовых наборах данных как один класс во время обучения. Полезно для задач бинарной классификации или когда ты фокусируешься на наличии объекта, а не на его классификации. |
classes | list[int] | None | Задает список ID классов для обучения. Полезно для фильтрации и фокусировки только на определенных классах во время обучения. |
rect | bool | False | Включает минимальную стратегию отступов (padding) — изображения в батче дополняются до общего размера минимальным образом, причем самая длинная сторона равна 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. |
fraction | float, int или list | 1.0 | Подмножество датасета в виде соотношения/количества или списка [train, val, test]. Двухэлементные списки оставляют test полным, а test 0 пропускает его загрузку NDJSON. Целое число 1 — это одно изображение, а 1.0 — все. |
profile | bool | False | Включает профилирование скорости ONNX и TensorRT во время обучения, полезно для оптимизации развертывания модели. |
freeze | int или list | None | Замораживает первые N слоев модели или определенные слои по индексу или имени модуля (23.cv2, без ведущего model.), уменьшая количество обучаемых параметров. Полезно для точной настройки или transfer learning. |
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) скорости обучения, постепенно увеличивающее ее от малого значения до начального для ранней стабилизации обучения. |
warmup_momentum | float | 0.8 | Начальный импульс для фазы разогрева, постепенно корректирующийся до установленного значения в течение периода разогрева. |
warmup_bias_lr | float | 0.1 | Скорость обучения для параметров смещения (bias) на этапе прогрева (warmup), помогающая стабилизировать обучение модели на начальных эпохах. Автоматически устанавливается в значение 0.0 при использовании значения по умолчанию optimizer='auto', поэтому для его применения укажи оптимизатор явно. |
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 сводит их к обычному log-RMSE. |
nbs | int | 64 | Номинальный размер пакета для нормализации потерь. |
overlap_mask | bool | True | Определяет, должны ли маски объектов объединяться в одну общую маску для обучения или оставаться отдельными для каждого объекта. В случае перекрытия, меньшая маска накладывается поверх большей при объединении. |
mask_ratio | int | 4 | Коэффициент уменьшения разрешения (downsample) для масок сегментации, влияющий на разрешение масок, используемых при обучении. |
dropout | float | 0.0 | Коэффициент исключения (dropout) для регуляризации в задачах классификации, предотвращающий переобучение путем случайного исключения единиц во время обучения. |
val | bool | True | Включает валидацию во время обучения, позволяя периодически оценивать производительность модели на отдельном наборе данных. |
plots | bool | True | Генерирует и сохраняет графики метрик обучения и валидации, а также примеры предсказаний, предоставляя визуальное представление о производительности модели и прогрессе обучения. |
compile | bool или str | False | Включает компиляцию графа PyTorch 2.x torch.compile с помощью backend='inductor'. Принимает True → "default", False → отключает или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При неподдерживаемости возвращается к жадному режиму (eager) с предупреждением. |
channels_last | bool | False | Использует формат памяти channels_last (NHWC) для сверток во время обучения, ускоряя работу GPU с CUDA Tensor Core без изменения результатов. Автоматически игнорируется на CPU и MPS, где он не дает преимуществ. |
max_det | int | 300 | Указывает максимальное количество объектов, сохраняемых во время фазы валидации обучения. |
Аргумент batch предлагает три варианта конфигурации:
- Фиксированный размер батча: Укажите количество изображений в батче целым числом (например,
batch=16). - Авторежим (60% памяти GPU): Используйте
batch=-1для автоматической настройки примерно до 60% использования памяти CUDA. - Авторежим с долей использования: Установите дробное значение (например,
batch=0.70) для настройки на основе указанного объема использования памяти GPU. - No Fit Found: Если ни один размер батча из кандидатов не создает подходящий профиль, AutoBatch вызывает понятную ошибку
RuntimeError, вместо того чтобы молча переключаться на несвязанное значение по умолчанию.
Настройки предсказания#
Настройки предсказания для моделей YOLO включают гиперпараметры и конфигурации, влияющие на производительность, скорость и точность во время инференса. К ключевым настройкам относятся порог уверенности, порог немаксимального подавления (NMS) и количество классов. Размер входных данных, формат и дополнительные функции, такие как маски, также влияют на предсказания. Настройка этих параметров важна для оптимальной производительности.
Аргументы инференса:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
source | str, int или None | None | Задает источник данных для инференса. Может быть путем к изображению, видеофайлу, директорией, URL-адресом или ID устройства для прямых трансляций. Если опущено, записывается предупреждение, и модель переключается на встроенные демо-ресурсы (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" включает инференс FP16 на поддерживаемых GPU; 32/"fp32"/не задано — это FP32. Квантование INT8/PTQ настраивается при экспорте, а затем используется путем загрузки экспортированной модели. Заменяет устаревший флаг half. |
device | str | None | Задает устройство для инференса (например, cpu, cuda:0, 0, npu или npu:0). Позволяет пользователям выбирать между CPU, конкретным GPU, Huawei Ascend NPU или другими вычислительными устройствами для выполнения модели. |
dnn | bool | False | Если True, использует модуль OpenCV DNN вместо ONNX Runtime для инференса моделей ONNX. |
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), подавляя перекрывающиеся боксы с более низким скором для разных классов, а не только в рамках одного класса. Полезно в сценариях многоклассового детектирования, где часто происходит перекрытие классов. Для моделей «end-to-end» (YOLO26, YOLOv10) это лишь предотвращает появление одного и того же детектирования с несколькими метками классов (дубликаты с IoU=1.0) и не выполняет подавление на основе порога IoU между различными боксами. |
classes | list[int] | None | Фильтрует предсказания по набору ID классов. Будут возвращены только обнаружения, принадлежащие указанным классам. Полезно для фокусировки на релевантных объектах в задачах многоклассового обнаружения. |
retina_masks | bool | False | Возвращает маски сегментации высокого разрешения. Возвращаемые маски (masks.data) будут соответствовать исходному размеру изображения, если эта функция включена. Если отключена, они будут иметь размер изображения, использовавшийся при инференсе. |
embed | list[int] | None | Указывает слои, из которых нужно извлекать векторы признаков или embeddings. Используй 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 | Включает компиляцию графа PyTorch 2.x torch.compile с помощью backend='inductor'. Принимает True → "default", False → отключает или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При неподдерживаемости возвращается к жадному режиму (eager) с предупреждением. |
channels_last | bool | False | Использует формат памяти channels_last (NHWC) для сверток во время инференса, ускоряя работу GPU с CUDA Tensor Core без изменения результатов. Применяется только к нативным моделям PyTorch; игнорируется для CPU, MPS и экспортированных форматов, таких как TensorRT и ONNX. |
end2end | bool | None | Переопределяет сквозной (end-to-end) режим в моделях YOLO, поддерживающих инференс без NMS (YOLO26, YOLOv10). Установка значения False позволяет запускать предсказание с использованием традиционного пайплайна NMS, а также дополнительно дает возможность использовать аргумент iou. Подробности см. в руководстве по сквозному обнаружению. |
Аргументы визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
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 | Устанавливает минимальный порог уверенности для обнаружений. Более низкие значения увеличивают полноту (recall), но могут приводить к большему количеству ложноположительных срабатываний. Кривые «точность-полнота» по умолчанию используют 0.001; матрицы ошибок обнаружения используют явное значение conf или 0.25, если оно опущено. Сводные точность и полнота используют уверенность на основе max-F1, поэтому они могут отличаться от значений, полученных из confusion_matrix.png. По умолчанию для валидации OBB используется 0.01 для снижения потребления памяти. |
iou | float | 0.7 | Устанавливает порог пересечения над объединением для немаксимального подавления. Управляет устранением дубликатов обнаружения. |
max_det | int | 300 | Ограничивает максимальное количество обнаружений на изображение. Полезно в плотных сценах для предотвращения чрезмерного количества обнаружений и управления вычислительными ресурсами. |
quantize | int или str | None | Точность валидации: 16/"fp16" включает валидацию FP16 на поддерживаемых GPU; 32/"fp32"/не задано — это 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, генерирует и сохраняет графики предсказаний по сравнению с истинными данными (ground truth), матрицы ошибок и PR-кривые для визуальной оценки производительности модели. |
classes | list[int] | None | Указывает список ID классов для оценки. Полезно для фильтрации и концентрации внимания только на определенных классах во время оценки. |
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 | Включает классово-агностическое подавление неглавных максимумов, подавляя перекрывающиеся боксы с более низким скором независимо от их предсказанного класса. Полезно для приложений, ориентированных на инстансы. Для моделей «end-to-end» (YOLO26, YOLOv10) это лишь предотвращает появление одного и того же детектирования с несколькими метками классов (дубликаты с IoU=1.0) и не выполняет подавление на основе порога IoU между различными боксами. |
single_cls | bool | False | Во время валидации рассматривает все классы как один единственный класс. Полезно для оценки производительности модели на задачах бинарной детекции или когда различия между классами не важны. |
visualize | bool | False | Визуализирует ground truths, true positives, false positives и false negatives для каждого изображения. Полезно для отладки и интерпретации модели. |
show_labels | bool | True | Отображает метки классов в визуализациях валидации при visualize=True. Установите False для более чистого просмотра совпадений и ошибок. |
show_conf | bool | True | Отображает оценки уверенности в визуализациях валидации при visualize=True. Установите False для более чистого просмотра совпадений и ошибок. |
compile | bool или str | False | Включает компиляцию графа PyTorch 2.x torch.compile с помощью backend='inductor'. Принимает True → "default", False → отключает или строковый режим, такой как "default", "reduce-overhead", "max-autotune-no-cudagraphs". При неподдерживаемости возвращается к жадному режиму (eager) с предупреждением. |
channels_last | bool | False | Использует формат памяти channels_last (NHWC) для свёрток во время валидации, ускоряя работу GPU с CUDA Tensor Core без изменения результатов. Применяется только к нативным моделям PyTorch; игнорируется для CPU, MPS и экспортированных форматов, таких как TensorRT и ONNX. |
end2end | bool | None | Переопределяет сквозной (end-to-end) режим в моделях YOLO, поддерживающих инференс без NMS (YOLO26, YOLOv10). Установка значения False позволяет запускать валидацию с использованием традиционного пайплайна NMS, а также дополнительно дает возможность использовать аргумент iou. |
Тщательный тюнинг и эксперименты имеют решающее значение для обеспечения оптимальной производительности, а также для обнаружения и предотвращения переобучения.
Настройки экспорта#
Настройки экспорта для моделей 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 для глубины, 224 для классификации, 1024 для OBB и 640 для остальных задач, в то время как дообученная модель сохраняет то значение imgsz, на котором она обучалась. Модель, собранная из YAML, не имеет записанного размера обучения и использует 640. |
keras | bool | False | Включает экспорт в формат Keras для SavedModel TensorFlow, обеспечивая совместимость с сервировкой и API TensorFlow. |
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 | False | Добавляет немаксимальное подавление (NMS) к экспортированной модели, если это поддерживается (см. Форматы экспорта), повышая эффективность постобработки обнаружений. Недоступно для сквозных (end2end) моделей. Для CoreML поддерживается только для моделей обнаружения. |
conf | float | None | Порог уверенности, используемый везде, где генерируется NMS во время экспорта: для экспортов nms=True; экспортов детекции Hailo без сквозного обучения (non-end-to-end); а также для экспортов детекции, позы и сегментации 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 не имеет ограничения на количество детектирований, а также к экспортам сквозной детекции без NMS (YOLO26, YOLOv10, с ограничением до числа доступных анкеров) и экспортам детекции, позы и сегментации IMX. |
agnostic_nms | bool | False | Включает классово-агностический NMS везде, где NMS на этапе экспорта генерируется с помощью стандартного конвейера nms=True, включая собственный этап NMS в CoreML, подавляя перекрывающиеся боксы с более низким скором для разных классов, а не только в рамках одного класса. Не поддерживается сгенерированными конфигами NMS для Hailo или IMX, которые не имеют классово-агностической опции и остаются чувствительными к классам независимо от этого флага. Также встроено в экспорты без NMS (end-to-end) (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), Huawei Ascend NPU (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]. Двухэлементные списки оставляют test полным, тогда как третье значение ограничивает его, а 0 пропускает. Целое число 1 выбирает одно изображение, а число с плавающей точкой 1.0 выбирает все изображения. |
end2end | bool | None | Переопределяет сквозной (end-to-end) режим в моделях YOLO, поддерживающих инференс без NMS (YOLO26, YOLOv10). Установка значения False позволяет экспортировать эти модели так, чтобы они были совместимы с традиционным пайплайном постобработки на основе NMS. Подробности см. в руководстве по сквозному обнаружению. |
Продуманная конфигурация гарантирует, что экспортированная модель оптимизирована для конкретного случая использования и эффективно функционирует в целевой среде.
Настройки решений#
Конфигурационные настройки решений Ultralytics предлагают гибкость для адаптации моделей под такие задачи, как подсчет объектов, создание тепловых карт, отслеживание тренировок, анализ данных, отслеживание зон, управление очередями и подсчет на основе регионов. Эти параметры позволяют легко вносить коррективы для получения точных и полезных результатов, адаптированных под твои конкретные нужды.
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
region | list или dict | None | Точки, определяющие область интереса (ROI): либо список кортежей (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. |
source | str | None | Путь к входному источнику (видео, RTSP и т. д.). Используется только с интерфейсом командной строки (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 | Применяет случайное перспективное преобразование к изображению, улучшая способность модели понимать объекты в 3D-пространстве. |
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, чтобы создавать такие графики, как кривые потерь, кривые precision-recall и примеры предсказаний для визуального отслеживания производительности. |
save | True | Включает сохранение контрольных точек обучения и финальных весов модели. Установи значение True, чтобы периодически сохранять состояния модели, что позволяет возобновлять обучение или развертывать модель. |
Пользовательский конфигурационный файл#
Загрузи сохраненный YAML, чтобы повторно использовать полный набор аргументов без их передачи в командной строке. Аргумент cfg переопределяет значения из default.yaml, в то время как дополнительные аргументы, переданные вместе с ним, по-прежнему имеют приоритет.
| Аргумент | По умолчанию | Описание |
|---|---|---|
cfg | None | Путь к YAML-файлу, значения которого заменяют записи default.yaml. Пример для CLI см. в разделе Overriding Default Config File. |
FAQ#
Повысь производительность, настроив такие гиперпараметры, как batch size, learning rate, момент и затухание весов. Настрой параметры data augmentation, выбери подходящий оптимизатор и используй такие методы, как раннюю остановку (early stopping) или mixed precision. Подробности см. в Train Guide.
Ключевые гиперпараметры, влияющие на точность, включают:
- Размер пакета (
batch): большие размеры могут стабилизировать обучение, но требуют больше памяти. - Скорость обучения (
lr0): меньшие значения обеспечивают точную настройку, но более медленную сходимость. - Момент (
momentum): ускоряет векторы градиента, сглаживая колебания. - Размер изображения (
imgsz): большие размеры улучшают точность, но увеличивают вычислительную нагрузку.
Настрой эти параметры в зависимости от твоего датасета и оборудования. Узнай больше в разделе Train Settings.
- Размер пакета (
Скорость обучения (
lr0) имеет решающее значение; наччи с0.01для SGD или0.001для Adam optimizer. Отслеживай метрики и вноси изменения по мере необходимости. Используй планировщики скорости обучения на основе косинуса (cos_lr) или разогрев (warmup_epochs,warmup_momentum). Подробности приведены в Train Guide.Настройки по умолчанию включают:
- Порог уверенности (
conf=0.25): минимальная уверенность для детекций. - Порог IoU (
iou=0.7): для Non-Maximum Suppression (NMS). - Размер изображения (
imgsz=640): изменяет размер входных изображений. - Устройство (
device=None): выбирает CPU, GPU, Apple MPS или Huawei Ascend NPU (npu).
Полный обзор см. в разделах Predict Settings и Predict Guide.
- Порог уверенности (
Обучение в режиме Mixed precision (
amp=True) снижает потребление памяти и ускоряет обучение за счет использования FP16 и FP32. Это полезно для современных GPU, позволяя использовать более крупные модели и выполнять вычисления быстрее без значительной потери точности. Узнай больше в Train Guide.