/run-torch-model

Package to run a pytorch model.

Primary LanguagePythonMIT LicenseMIT

run-torch-model

Simple program to run a pytorch compatible model. Includes a tools function which has support for creating dataloader objects required for training/testing/validation.

Requirements

  • torch
  • torchmetrics
  • scikit-learn

Install

Install using pip:

pip install run-torch-model

Usage

Use create_dataloader to initiate datasets for training and testing:

from run_torch_model import create_dataloader

dataloader_train, dataloader_test = create_dataloader(features=features, 
                                                      targets=targets,
                                                      batch_size=batch_size,
                                                      train_size=train_size,
                                                      test_size=test_size)

To run a model we define the optimizer, its arguments and a criterion, feed into the class and perform a call for training.

import torch
from run_torch_model import RunTorchNN

optimizer = 'torch.optim.Adam'  # Must be string, if CUDA we initiate the optimizer after calling .cuda for speed-up
optimizer_args = {'lr': 0.001'} # Initialize some arguments for the optimizer
criterion = torch.nn.MSELoss()

run_model = RunTorchNN(model, # Some pytorch model
                          epochs=100, 
                          optimizer=optimizer,
                          optimizer_args=optimizer_args,
                          dataloaders=(dataloader_train, dataloader_test), 
                          criterion=criterion)
 
run_model() # Executes the training

To fetch metrics:

R2 = run_model.get_r2score()
loss = run_model.get_average_loss()

To evaluate the trained model on a different set of features:

predictions, loss = run_model.predict(new_features)

To evaluate the model on a validation set:

loss, r2 = run_model.evaluate(dataloader_validation)
predictions = run_model.get_predictions()  # To get predictions, if necessary