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