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¶
Callback for logging YOLO training metrics. |
|
Callback for saving model checkpoints. |
|
Callback for early stopping based on metric plateau. |
|
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.BaseCallbackCallback 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.BaseCallbackCallback 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.BaseCallbackCallback 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.BaseCallbackCallback 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.