GPErks

Gaussian Process Emulators (GPEs) are fast-evaluating probabilistic surrogates commonly used to replace computationally expensive computer code outputs.

GPErks allows to properly (from the Italian word "bene") fit GPEs, which in turn will benefit the GPEs themselves, as a better training leads to a better adequacy for the resulting emulator to replace the underlying full deterministic forward model in practical applications (regression tasks).

GPErks is written on top of GPyTorch (a GPs library in PyTorch) and it implements an intuitive and fully customisable API to train univariate GP emulators. GPErks eases researchers' life when it comes to model analysis and uncertainty quantification, as it implements a comprehensive framework that goes from a raw training dataset provided by the user, all the way through to a full model global sensitivities characterisation.

GPErks main features can be summarised in the following (non-exhaustive) list:

  • Automatic dataset pre-processing and visualisation
  • Training on CPU and GPU (inherited from GPyTorch library)
  • Automatic/Configurable model snapshotting
  • Automatic/Configurable early stopping for training
  • Automatic loss monitoring and training statistics saving
  • Automatic inference (integration with third-party Torchmetrics library) and accuracy plotting
  • Automatic diagnostics and errors plotting
  • Reproducible experiments through dumping/loading config files
  • K-fold cross-validation accuracy and training (also in multiprocessing)
  • GPE-based global sensitivity analysis (integration with third-party SALib library)
  • Automatic sensitivities post-processing and visualisation

Python Package

Tutorial: