pycsamt.ai.training.trainer#
Training loop for EM neural networks.
EMTrainer wraps a PyTorch nn.Module and handles:
Mini-batch training with
DataLoaderMasked MSE loss (ignores NaN padding for variable-depth datasets)
ReduceLROnPlateaulearning-rate schedulingEarly stopping with configurable patience
Per-epoch progress display (
tqdmif available)History dict for
plot_convergence()
Classes
|
Training loop manager for EM 1-D inversion networks. |
- class pycsamt.ai.training.trainer.EMTrainer(model, *, lr=0.001, weight_decay=1e-05, patience=20, min_delta=1e-05, batch_size=256, device='cpu', grad_clip=None, verbose=True)[source]#
Bases:
objectTraining loop manager for EM 1-D inversion networks.
- Parameters:
model (nn.Module) – The PyTorch network to train.
lr (float) – Initial learning rate. Default 1e-3.
weight_decay (float) – L2 regularisation. Default 1e-5.
patience (int) – Early-stopping patience (epochs without val-loss improvement).
min_delta (float) – Minimum val-loss improvement to reset patience counter.
batch_size (int) – Mini-batch size.
device (str) – Compute device (
'cpu','cuda','mps').grad_clip (float or None) – If set, clip gradient norms to this value.
verbose (bool) – Print per-epoch summary.
- Variables: