altametris.sara.yolo.callbacks

YOLO-specific callbacks.

Specialized callbacks for YOLO training with metrics logging, checkpoint management, and early stopping.

Example

>>> callback = YoloMetricsCallback()
>>> trainer = YoloTrainer(model=model, callbacks=[callback])

Attributes

Classes

YoloMetricsCallback

Callback for logging YOLO training metrics.

YoloCheckpointCallback

Callback for saving model checkpoints.

YoloEarlyStoppingCallback

Callback for early stopping based on metric plateau.

YoloLoggingCallback

Callback for structured logging of training progress.

Module Contents

altametris.sara.yolo.callbacks.logger
class altametris.sara.yolo.callbacks.YoloMetricsCallback(log_file: pathlib.Path | None = None)

Bases: altametris.sara.core.base_callback.BaseCallback

Callback for logging YOLO training metrics.

Logs mAP, precision, recall, and loss metrics during training.

Example

>>> callback = YoloMetricsCallback(log_file="metrics.json")
>>> trainer = YoloTrainer(model=model, callbacks=[callback])
log_file = None
metrics_history: list[dict[str, Any]] = []
on_epoch_end(epoch: int, metrics: dict[str, Any], **kwargs: Any) None

Log metrics at end of epoch.

_save_metrics() None

Save metrics history to JSON file.

class altametris.sara.yolo.callbacks.YoloCheckpointCallback(save_dir: pathlib.Path, monitor_metric: str = 'mAP50', save_every: int = 10)

Bases: altametris.sara.core.base_callback.BaseCallback

Callback for saving model checkpoints.

Saves best model based on specified metric and periodic checkpoints.

Parameters:
  • save_dir – Directory to save checkpoints

  • monitor_metric – Metric to monitor for best model (default: “mAP50”)

  • save_every – Save checkpoint every N epochs

Example

>>> callback = YoloCheckpointCallback(
...     save_dir="checkpoints",
...     monitor_metric="mAP50-95",
...     save_every=10
... )
save_dir
monitor_metric = 'mAP50'
save_every = 10
best_metric = 0.0
on_epoch_end(epoch: int, metrics: dict[str, Any], **kwargs: Any) None

Save checkpoints at end of epoch.

_save_checkpoint(model: altametris.sara.core.base_model.BaseModel, path: pathlib.Path, checkpoint_type: str) None

Helper to save checkpoint with error handling.

class altametris.sara.yolo.callbacks.YoloEarlyStoppingCallback(monitor_metric: str = 'mAP50', patience: int = 20, min_delta: float = 0.001)

Bases: altametris.sara.core.base_callback.BaseCallback

Callback for early stopping based on metric plateau.

Stops training if monitored metric doesn’t improve for N epochs.

Parameters:
  • monitor_metric – Metric to monitor

  • patience – Number of epochs without improvement before stopping

  • min_delta – Minimum change to qualify as improvement

Example

>>> callback = YoloEarlyStoppingCallback(
...     monitor_metric="val_loss",
...     patience=20,
...     min_delta=0.001
... )
monitor_metric = 'mAP50'
patience = 20
min_delta = 0.001
best_metric = 0.0
epochs_without_improvement = 0
should_stop = False
on_epoch_end(epoch: int, metrics: dict[str, Any], **kwargs: Any) None

Check for early stopping condition.

class altametris.sara.yolo.callbacks.YoloLoggingCallback(log_level: str = 'INFO')

Bases: altametris.sara.core.base_callback.BaseCallback

Callback for structured logging of training progress.

Logs training events with timestamps and structured data.

Example

>>> callback = YoloLoggingCallback(log_level="INFO")
>>> trainer = YoloTrainer(model=model, callbacks=[callback])
log_level
on_train_start(**kwargs: Any) None

Log training start.

on_train_end(**kwargs: Any) None

Log training end.

on_validation_start(**kwargs: Any) None

Log validation start.

on_validation_end(metrics: dict[str, Any], **kwargs: Any) None

Log validation results.