146 lines
10 KiB
YAML
146 lines
10 KiB
YAML
|
|
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|||
|
|
|
|||
|
|
# Global configuration YAML with settings and hyperparameters for YOLO training, validation, prediction and export
|
|||
|
|
# For documentation see https://docs.ultralytics.com/usage/cfg/
|
|||
|
|
|
|||
|
|
task: detect # (str) YOLO task, i.e. detect, segment, classify, pose, obb
|
|||
|
|
mode: train # (str) YOLO mode, i.e. train, val, predict, export, track, benchmark
|
|||
|
|
|
|||
|
|
# Train settings -------------------------------------------------------------------------------------------------------
|
|||
|
|
model: # (str, optional) path to model file, i.e. yolov8n.pt or yolov8n.yaml
|
|||
|
|
data: # (str, optional) path to data file, i.e. coco8.yaml
|
|||
|
|
epochs: 100 # (int) number of epochs to train for
|
|||
|
|
time: # (float, optional) max hours to train; overrides epochs if set
|
|||
|
|
patience: 100 # (int) early stop after N epochs without val improvement
|
|||
|
|
batch: 16 # (int | float) batch size as int (e.g. 16), or float 0.0–1.0 for AutoBatch fraction of GPU memory
|
|||
|
|
imgsz: 640 # (int | list) train/val use int (square); predict/export may use [h,w]
|
|||
|
|
save: True # (bool) save train checkpoints and predict results
|
|||
|
|
save_period: -1 # (int) save checkpoint every N epochs; disabled if < 1
|
|||
|
|
cache: False # (bool | str) cache images in RAM (True/'ram') or on 'disk' to speed dataloading; False disables
|
|||
|
|
device: # (int | str | list) device: 0 or [0,1,2,3] for CUDA, 'cpu'/'mps', or -1/[-1,-1] to auto-select idle GPUs
|
|||
|
|
workers: 8 # (int) dataloader workers (per RANK if DDP)
|
|||
|
|
project: # (str, optional) project name for results root
|
|||
|
|
name: # (str, optional) experiment name; results in 'project/name'
|
|||
|
|
exist_ok: False # (bool) overwrite existing 'project/name' if True
|
|||
|
|
pretrained: True # (bool | str) use pretrained weights (bool) or load weights from path (str)
|
|||
|
|
optimizer: auto # (str) optimizer: SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, or auto
|
|||
|
|
verbose: True # (bool) print verbose logs during training/val
|
|||
|
|
seed: 0 # (int) random seed for reproducibility
|
|||
|
|
deterministic: True # (bool) enable deterministic ops; reproducible but may be slower
|
|||
|
|
single_cls: False # (bool) treat all classes as a single class
|
|||
|
|
rect: False # (bool) rectangular batches for train; rectangular batching for val when mode='val'
|
|||
|
|
cos_lr: False # (bool) cosine learning rate scheduler
|
|||
|
|
close_mosaic: 10 # (int) disable mosaic augmentation for final N epochs (0 to keep enabled)
|
|||
|
|
resume: False # (bool) resume training from last checkpoint in the run dir
|
|||
|
|
amp: False # (bool) Automatic Mixed Precision (AMP) training; True runs AMP capability check
|
|||
|
|
fraction: 1.0 # (float) fraction of training dataset to use (1.0 = all)
|
|||
|
|
profile: False # (bool) profile ONNX/TensorRT speeds during training for loggers
|
|||
|
|
batch_timing: False # (bool) log averaged train-batch timing breakdowns and supported dataset profiling
|
|||
|
|
batch_timing_iters: 50 # (int) number of batches to average before printing timing breakdowns
|
|||
|
|
freeze: # (int | list, optional) freeze first N layers (int) or specific layer indices (list)
|
|||
|
|
multi_scale: 0.0 # (float) multi-scale range as a fraction of imgsz; sizes are rounded to stride multiples
|
|||
|
|
compile: False # (bool | str) enable torch.compile() backend='inductor'; True="default", False=off, or "default|reduce-overhead|max-autotune-no-cudagraphs"
|
|||
|
|
|
|||
|
|
# Segmentation
|
|||
|
|
overlap_mask: True # (bool) merge instance masks into one mask during training (segment only)
|
|||
|
|
mask_ratio: 4 # (int) mask downsample ratio (segment only)
|
|||
|
|
|
|||
|
|
# Classification
|
|||
|
|
dropout: 0.0 # (float) dropout for classification head (classify only)
|
|||
|
|
|
|||
|
|
# Val/Test settings ----------------------------------------------------------------------------------------------------
|
|||
|
|
val: True # (bool) run validation/testing during training
|
|||
|
|
split: val # (str) dataset split to evaluate: 'val', 'test' or 'train'
|
|||
|
|
save_json: False # (bool) save results to COCO JSON for external evaluation
|
|||
|
|
conf: # (float, optional) confidence threshold; defaults: predict=0.25, val=0.001
|
|||
|
|
iou: 0.7 # (float) IoU threshold used for NMS
|
|||
|
|
max_det: 300 # (int) maximum number of detections per image
|
|||
|
|
half: False # (bool) use half precision (FP16) if supported
|
|||
|
|
dnn: False # (bool) use OpenCV DNN for ONNX inference
|
|||
|
|
plots: True # (bool) save plots and images during train/val
|
|||
|
|
end2end: # (bool, optional) whether to use end2end head (YOLO26, YOLOv10) for predict/val/export
|
|||
|
|
roi_metrics_only: False # (bool) compute validation metrics using ROI samples only when camera_mode metadata is available
|
|||
|
|
|
|||
|
|
# Predict settings -----------------------------------------------------------------------------------------------------
|
|||
|
|
source: # (str, optional) path/dir/URL/stream for images or videos; e.g. 'ultralytics/assets' or '0' for webcam
|
|||
|
|
vid_stride: 1 # (int) read every Nth frame for video sources
|
|||
|
|
stream_buffer: False # (bool) True buffers all frames; False keeps the most recent frame for low-latency streams
|
|||
|
|
visualize: False # (bool) visualize model features (predict) or TP/FP/FN confusion (val)
|
|||
|
|
visualize_conf: 0.25 # (float) confidence threshold for human-readable validation/TensorBoard prediction visualization
|
|||
|
|
augment: False # (bool) apply test-time augmentation during prediction
|
|||
|
|
agnostic_nms: False # (bool) class-agnostic NMS
|
|||
|
|
classes: # (int | list[int], optional) filter by class id(s), e.g. 0 or [0,2,3]
|
|||
|
|
retina_masks: False # (bool) use high-resolution segmentation masks (segment)
|
|||
|
|
embed: # (list[int], optional) return feature embeddings from given layer indices
|
|||
|
|
|
|||
|
|
# Visualize settings ---------------------------------------------------------------------------------------------------
|
|||
|
|
show: False # (bool) show images/videos in a window if supported
|
|||
|
|
save_frames: False # (bool) save individual frames from video predictions
|
|||
|
|
save_txt: False # (bool) save results as .txt files (xywh format)
|
|||
|
|
save_conf: False # (bool) save confidence scores with results
|
|||
|
|
save_crop: False # (bool) save cropped prediction regions to files
|
|||
|
|
show_labels: True # (bool) draw class labels on images, e.g. 'person'
|
|||
|
|
show_conf: True # (bool) draw confidence values on images, e.g. '0.99'
|
|||
|
|
show_boxes: True # (bool) draw bounding boxes on images
|
|||
|
|
line_width: # (int, optional) line width of boxes; auto-scales with image size if not set
|
|||
|
|
|
|||
|
|
# Export settings ------------------------------------------------------------------------------------------------------
|
|||
|
|
format: torchscript # (str) target format, e.g. torchscript|onnx|openvino|engine|coreml|saved_model|pb|tflite|edgetpu|tfjs|paddle|mnn|ncnn|imx|rknn|executorch|axelera
|
|||
|
|
keras: False # (bool) TF SavedModel only (format=saved_model); enable Keras layers during export
|
|||
|
|
optimize: False # (bool) TorchScript only; apply mobile optimizations to the scripted model
|
|||
|
|
int8: False # (bool) INT8/PTQ where supported (openvino, engine, coreml, tflite, tfjs, mnn, imx, axelera); needs calibration data/fraction
|
|||
|
|
dynamic: False # (bool) dynamic shapes for torchscript, onnx, openvino, engine, coreml; enable variable image sizes
|
|||
|
|
simplify: True # (bool) ONNX/engine only; run graph simplifier for cleaner ONNX before runtime conversion
|
|||
|
|
opset: # (int, optional) ONNX/engine only; opset version for export; leave unset to use a tested default
|
|||
|
|
workspace: # (float, optional) engine (TensorRT) only; workspace size in GiB, e.g. 4
|
|||
|
|
nms: False # (bool) fuse NMS into exported model when backend supports; if True, conf/iou apply (agnostic_nms except coreml)
|
|||
|
|
|
|||
|
|
# Hyperparameters ------------------------------------------------------------------------------------------------------
|
|||
|
|
lr0: 0.01 # (float) initial learning rate (SGD=1e-2, Adam/AdamW=1e-3)
|
|||
|
|
lrf: 0.01 # (float) final LR fraction; final LR = lr0 * lrf
|
|||
|
|
momentum: 0.937 # (float) SGD momentum or Adam beta1
|
|||
|
|
weight_decay: 0.0005 # (float) weight decay (L2 regularization)
|
|||
|
|
warmup_epochs: 3.0 # (float) warmup epochs (fractions allowed)
|
|||
|
|
warmup_momentum: 0.8 # (float) initial momentum during warmup
|
|||
|
|
warmup_bias_lr: 0.1 # (float) bias learning rate during warmup
|
|||
|
|
e2e_o2m_start: 0.8 # (float) initial one-to-many loss weight for end-to-end heads; one-to-one uses 1 - this value
|
|||
|
|
e2e_o2m_final: 0.1 # (float) final one-to-many loss weight after decay; one-to-one uses 1 - this value
|
|||
|
|
e2e_o2m_decay_epochs: # (float, optional) epochs used to linearly decay one-to-many weight to e2e_o2m_final; defaults to epochs - 1
|
|||
|
|
loss_3d_warmup_epochs: # (float, optional) epochs before enabling 3D loss; defaults to warmup_epochs when unset
|
|||
|
|
loss_3d_ramp_epochs: 10.0 # (float) epochs used to ramp 3D loss weight from 0 to loss_3d_weight_max
|
|||
|
|
loss_3d_weight_max: 0.1 # (float) maximum multiplier applied to the summed 3D loss terms
|
|||
|
|
edge_aux_loss_gain: 1.0 # (float) gain for 3D visible-edge auxiliary loss; <=0 disables edge GT decoding and loss
|
|||
|
|
face_visibility_score_thresh: 0.05 # (float) visible-face score threshold used by 3D face supervision and visible-face metrics
|
|||
|
|
box: 7.5 # (float) box loss gain
|
|||
|
|
cls: 0.5 # (float) classification loss gain
|
|||
|
|
dfl: 1.5 # (float) distribution focal loss gain
|
|||
|
|
pose: 12.0 # (float) pose loss gain (pose tasks)
|
|||
|
|
kobj: 1.0 # (float) keypoint objectness loss gain (pose tasks)
|
|||
|
|
rle: 1.0 # (float) rle loss gain (pose tasks)
|
|||
|
|
angle: 1.0 # (float) oriented angle loss gain (obb tasks)
|
|||
|
|
nbs: 64 # (int) nominal batch size used for loss normalization
|
|||
|
|
hsv_h: 0.015 # (float) HSV hue augmentation fraction
|
|||
|
|
hsv_s: 0.7 # (float) HSV saturation augmentation fraction
|
|||
|
|
hsv_v: 0.4 # (float) HSV value (brightness) augmentation fraction
|
|||
|
|
degrees: 0.0 # (float) rotation degrees (+/-)
|
|||
|
|
translate: 0.1 # (float) translation fraction (+/-)
|
|||
|
|
scale: 0.5 # (float) scale gain (+/-)
|
|||
|
|
shear: 0.0 # (float) shear degrees (+/-)
|
|||
|
|
perspective: 0.0 # (float) perspective fraction (0–0.001 typical)
|
|||
|
|
flipud: 0.0 # (float) vertical flip probability
|
|||
|
|
fliplr: 0.5 # (float) horizontal flip probability
|
|||
|
|
bgr: 0.0 # (float) RGB↔BGR channel swap probability
|
|||
|
|
mosaic: 1.0 # (float) mosaic augmentation probability
|
|||
|
|
mixup: 0.0 # (float) MixUp augmentation probability
|
|||
|
|
cutmix: 0.0 # (float) CutMix augmentation probability
|
|||
|
|
copy_paste: 0.0 # (float) segmentation copy-paste probability
|
|||
|
|
copy_paste_mode: flip # (str) copy-paste strategy for segmentation: flip or mixup
|
|||
|
|
auto_augment: randaugment # (str) classification auto augmentation policy: randaugment, autoaugment, augmix
|
|||
|
|
erasing: 0.4 # (float) random erasing probability for classification (0.0–1.0)
|
|||
|
|
|
|||
|
|
# Custom config.yaml ---------------------------------------------------------------------------------------------------
|
|||
|
|
cfg: # (str, optional) path to a config.yaml that overrides defaults
|
|||
|
|
|
|||
|
|
# Tracker settings ------------------------------------------------------------------------------------------------------
|
|||
|
|
tracker: botsort.yaml # (str) tracker config file: botsort.yaml or bytetrack.yaml
|