2.25.3.21. 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, verbosity-aware (see
pycsamt.utils.progress)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, int, or str) – Progress verbosity — see
pycsamt.utils.progress.normalize_verbose().0/Falsesilent,1/Trueanimated bar,2/"log"one printed line per summary,"auto"tty-detected.
- Variables:
- fit(train_ds, val_ds, epochs=100)[source]
Train the network.