The YOLO project uses yolo/lazy.py as the primary entry point for executing different tasks. You can specify the task type (train, validation, inference) and override various parameters using command-line arguments.
Common Tasks
Training
Run training with a specific dataset and enable Weights & Biases (wandb) logging:
python yolo/lazy.py task=train dataset=dev use_wandb=True
Validation
Run validation on a specific model and dataset:
python yolo/lazy.py task=validation model=v9-s dataset=toy name=validation
Inference
Run inference with various configurations such as device selection, image size, or NMS thresholds:
python yolo/lazy.py task=inference device=cpu image_size=[480,640] task.nms.min_confidence=0.1
Inference Configuration Options
device: Specify hardware (e.g., cpu).+quiet=True: Enable quiet mode.name: Set a custom name for the inference run.image_size: Set input dimensions as a list, e.g., [480,640].task.nms.min_confidence: Set the minimum confidence threshold for Non-Maximum Suppression.task.fast_inference: Set to deploy or onnx (e.g., task.fast_inference=onnx device=cpu).task.data.source: Specify the image source path (e.g., task.data.source=data/toy/images/train).
# Train
python yolo/lazy.py task=train dataset=dev use_wandb=True
# Validate
python yolo/lazy.py task=validation
python yolo/lazy.py task=validation model=v9-s
python yolo/lazy.py task=validation dataset=toy
python yolo/lazy.py task=validation dataset=toy name=validation
# Inference
python yolo/lazy.py task=inference
python yolo/lazy.py task=inference device=cpu
python yolo/lazy.py task=inference +quiet=True
python yolo/lazy.py task=inference name=AnyNameYouWant
python yolo/lazy.py task=inference image_size=\[480,640]
python yolo/lazy.py task=inference task.nms.min_confidence=0.1
python yolo/lazy.py task=inference task.fast_inference=deploy
python yolo/lazy.py task=inference task.fast_inference=onnx device=cpu
python yolo/lazy.py task=inference task.data.source=data/toy/images/train