altametris.sara.yolo.trainer

YOLO trainer implementation.

Provides training interface for YOLO models using Ultralytics backend with Altametris standardized callbacks and configuration.

Example

>>> model = YoloModel(version="11", task="detect", size="x")
>>> trainer = YoloTrainer(model=model, device="cuda")
>>> results = trainer.train(dataset_config="coco128.yaml", epochs=100)

Attributes

Classes

YoloTrainer

YOLO trainer implementing BaseTrainer interface.

Module Contents

altametris.sara.yolo.trainer.logger
class altametris.sara.yolo.trainer.YoloTrainer(model: altametris.sara.yolo.model.YoloModel, device: str = 'auto', callbacks: list[altametris.sara.core.base_callback.BaseCallback] | None = None)

Bases: altametris.sara.core.base_trainer.BaseTrainer

YOLO trainer implementing BaseTrainer interface.

Wraps Ultralytics training with Altametris callback system and standardized configuration.

Parameters:
  • model – YOLO model to train

  • device – Training device

  • callbacks – Training callbacks

Example

>>> model = YoloModel(version="11", task="detect", size="n")
>>> trainer = YoloTrainer(model=model, device="cuda")
>>> results = trainer.train(
...     dataset_config="data.yaml",
...     epochs=100,
...     batch_size=16,
...     imgsz=640
... )
model: altametris.sara.yolo.model.YoloModel
load_config(config_path: str | pathlib.Path) Dict[str, Any]

Load and parse YAML configuration file.

Supports both dataset configuration files (data.yaml) and training parameter files (train-params.yaml).

Parameters:

config_path – Path to YAML configuration file

Returns:

Dictionary containing parsed configuration

Raises:

TrainingError – If config file not found or invalid YAML

Example

>>> # Load dataset config
>>> dataset_config = trainer.load_config("data/detect/config.yml")
>>> print(dataset_config['names'])
{0: 'Chassis A', 1: 'Chassis C', ...}
>>> # Load training params
>>> train_params = trainer.load_config("data/detect/train-parameter-detect.yaml")
>>> epochs = train_params['train']['epochs']
train(dataset_config: str | pathlib.Path | Dict[str, Any], epochs: int = 100, batch_size: int = 16, imgsz: int = 640, save_dir: str | pathlib.Path | None = None, **kwargs: Any) dict[str, Any]

Train YOLO model.

Parameters:
  • dataset_config – Path to dataset YAML configuration or dict

  • epochs – Number of training epochs

  • batch_size – Batch size

  • imgsz – Input image size

  • save_dir – Directory to save results

  • **kwargs – Additional Ultralytics training arguments

Returns:

Training results dictionary

Raises:

TrainingError – If training fails

Example

>>> # Using YAML path
>>> results = trainer.train(
...     dataset_config="data.yaml",
...     epochs=10,
...     batch_size=8,
...     imgsz=640
... )
>>> # Using dict config
>>> config = trainer.load_config("train-params.yaml")
>>> results = trainer.train(
...     dataset_config="data.yaml",
...     epochs=config['train']['epochs'],
...     batch_size=config['train']['batch_size']
... )
validate(dataset_config: str | pathlib.Path, **kwargs: Any) dict[str, Any]

Validate YOLO model.

Parameters:
  • dataset_config – Path to validation dataset config

  • **kwargs – Additional validation arguments

Returns:

Validation metrics

Raises:

TrainingError – If validation fails

Example

>>> metrics = trainer.validate(dataset_config="val.yaml")
resume_training(checkpoint_path: str | pathlib.Path, **kwargs: Any) dict[str, Any]

Resume training from checkpoint.

Parameters:
  • checkpoint_path – Path to checkpoint file

  • **kwargs – Additional training arguments

Returns:

Training results

Example

>>> results = trainer.resume_training("runs/train/exp/weights/last.pt")