trphysx.utils

trphysx.utils.metrics

class trphysx.utils.metrics.Metrics(file_path: str = '.', file_name: str = 'log_metrics.h5')

Bases: object

Data class for storing training errors

Parameters:
  • file_path (str, optional) – Path to write logging files
  • file_name (str, optional) – Log file name
file_path = '.'
file_name = 'log_metrics.h5'
push(**kwargs) → None

Pushes elements in kwargs into the attributes of this class

Parameters:**kwargs – Attributes to save
writeToHDF5(file_name: str = None) → None

Write the classes attributes to HDF5 file

Parameters:file_name (str, optional) – File name to write to
appendToHDF5(file_name: str = None) → None

Appends the classes attributes to HDF5 file

Parameters:file_name (str, optional) – File name to write to
delHDF5(file_name: str = None) → None

Deletes hdf5 file if it exists

Parameters:file_name (str, optional) – File name

trphysx.utils.trainer

trphysx.utils.trainer.set_seed(seed: int) → None

Set random seed

Parameters:seed (int) – random seed
class trphysx.utils.trainer.Trainer(model: trphysx.transformer.phys_transformer_helpers.PhysformerTrain, args: trphysx.config.args.TrainingArguments, optimizers: Tuple[torch.optim.optimizer.Optimizer, torch.optim.lr_scheduler._LRScheduler], train_dataset: torch.utils.data.dataset.Dataset = None, eval_dataset: torch.utils.data.dataset.Dataset = None, embedding_model: trphysx.embedding.embedding_model.EmbeddingModel = None, viz: trphysx.viz.viz_model.Viz = None)

Bases: object

Generalized trainer for physics transformer models

Parameters:
  • model (PhysformerTrain) – Transformer with training head
  • args (TrainingArguments) – Training arguments
  • optimizers (Tuple[Optimizer, Scheduler], optional) – Tuple of Pytorch optimizer and lr scheduler.
  • train_dataset (Dataset, optional) – Training dataset. Defaults to None.
  • eval_dataset (Dataset, optional) – Eval/Validation dataset. Defaults to None.
  • embedding_model (EmbeddingModel, optional) – Embedding model. Used for recovering states during state evaluation of the model. Defaults to None.
  • viz (Viz, optional) – Visualization class. Defaults to None.
get_train_dataloader(train_dataset: torch.utils.data.dataset.Dataset = None) → torch.utils.data.dataloader.DataLoader

Creates a training dataloader. Overload for unusual training cases.

Parameters:train_dataset (Dataset, optional) – Optional training dataset. If none is provided, the class training data will be used. Defaults to None.
Raises:ValueError – If both the dataset parameter and class dataset have not been provided
Returns:Training dataloader
Return type:DataLoader
get_eval_dataloader(eval_dataset: torch.utils.data.dataset.Dataset = None) → torch.utils.data.dataloader.DataLoader

Creates a evaluation dataloader used for validation or testing of model.

Parameters:eval_dataset (Dataset, optional) – Optional eval dataset. If none is provided, the class eval data will be used. Defaults to None.
Raises:ValueError – If both the dataset parameter and class dataset have not been provided
Returns:Evaluation dataloader
Return type:DataLoader
train() → None

Trains the transformer model

training_step(model: trphysx.transformer.phys_transformer_helpers.PhysformerTrain, inputs: Dict[str, Any]) → Tuple[float, torch.Tensor, torch.Tensor]

Calls a forward pass of the training model and backprops for a single time-step

Parameters:
  • model (PhysformerTrain) – Transformer model with training head, could be
  • inputs (Dict[str, Any]) – Dictionary of model inputs for forward pass
Returns:

Tuple containing: loss value, hidden states

of transformer, attention states of the transformer.

Return type:

Tuple[float, Tensor, Tensor]

evaluate(epoch: int = None) → Dict[str, float]

Run evaluation and return metrics.

Parameters:epoch (int, optional) – Current epoch, used for naming figures. Defaults to None.
Returns:Dictionary of prediction metrics
Return type:Dict[str, float]
eval_step(model: trphysx.transformer.phys_transformer_helpers.PhysformerTrain, inputs: Dict[str, Any]) → Tuple[float, torch.Tensor, torch.Tensor]

Calls a eval pass of the training model.

Parameters:
  • model (PhysformerTrain) – Transformer model with training head
  • inputs (Dict[str, Any]) – Dictionary of model inputs for forward pass
Returns:

Tuple containing: prediction error value,

time-step error, predicted embeddings.

Return type:

Tuple[float, Tensor, Tensor]

eval_states(pred_embeds: torch.Tensor, states: Any, epoch: int = None, plot_id: int = 0, plot: bool = True) → float

Evaluates the predicted states by recovering the state space from the predicted embedding vectors. Can be overloaded for cases with special methods for recovering the state field.

Parameters:
  • pred_embeds (Tensor) – [B, T, n_embed] Predicted embedded vectors
  • states (Any) – Target states / data for recovery
  • epoch (int, optional) – Current epoch, used for naming figures. Defaults to None.
  • plot_id (int, optional) – Secondary plotting id to distinguish between numerical cases. Defaults to 0.
  • plot (bool, optional) – Plot models states. Defaults to True.
Returns:

Predicted state MSE error

Return type:

float