Surrogate Epoch Metrics

The SurrogateEpochMetrics dataclass records training statistics for a single epoch of surrogate model training, such as loss values and learning rate. These are produced by model implementations (e.g. MLPModel) during training and can be used for diagnostics and early stopping decisions.

class alf_core.dataclasses.surrogate_epoch_metrics.SurrogateEpochMetrics(epoch, train_loss, val_loss=None, additional_metrics=<factory>)[source]

Bases: object

Per-epoch training metrics for a surrogate model.

Explicit fields cover the standard required metrics. The additional_metrics dict holds model-specific metrics (e.g. spearman, mse) and any other optional values. None values are excluded when converting to a flat dict, so backends only receive metrics that were actually computed.

epoch

Zero-based epoch index.

train_loss

Training loss for this epoch.

val_loss

Validation loss, or None if no validation data was provided.

additional_metrics

Model-specific metrics (e.g. train_spearman, val_spearman, train_mse, val_mse) passed through to backends.

additional_metrics: dict[str, float]
epoch: int
to_metrics_dict()[source]

Return a flat dict of non-None metric values merged with additional_metrics.

Return type:

dict[str, int | float]

Returns:

Flat dict with epoch (as float), train_loss, any non-None optional fields, and all entries from additional_metrics.

train_loss: float
val_loss: float | None = None