Model Training Modules

Setup

find_device

models.setup.find_device()

Identifies if GPU is available to run models on, otherwise, uses CPU

Returns:

Torch device based on available GPUs or CPUs

Training Executor

TrainingExecutor

class models.train_models.TrainingExecutor(model=None, optim=None, loss=None, n_epochs=2000, printout=True)

Training excutor that trains models using a given model, optimizer, and loss function. Uses a training loop and provided data to train models.

Parameters:
  • model (FinDL model) – Deep learning model to train

  • optim (PyTorch optimizer) – PyTorch optimizer to use for training

  • loss (PyTorch loss function) – PyTorch loss function to use for training

  • n_epochs (int, optional) – Number of training epochs

  • printout (bool, optional) – If True, prints losses for every 100 epochs

Returns:

None

clear_recorded_loss()

Resets the saved losses, useful when training new models

Returns:

None

print_loss(label, train_loss, valid_loss=None)

Template for printing losses, prints out losses

Parameters:
  • label (str) – Label/context of printed loss

  • train_loss (int or float) – Training loss to print

  • valid_loss (int or float, optional) – Validation loss to print

Returns:

None

train(X, y, X_val=None, y_val=None, model_path='best_model')

Trains the model using the optimizer and loss functions on the provided data. Stores the parameters of the best performing model to reproduce models for later use.

Parameters:
  • X (tensor) – Time series data

  • y (tensor) – Labels of time series data

  • X_val (tensor, optional) – Validation set of time series data

  • y_val (tensor, optional) – Validation set of corresponding labels

  • model_path (str, optional) – Path to store best model parameters

Returns:

None