Skip to main content

Lightning-UQ-Box logo

docs style tests codecov license PyTorch Lightning

lightning-uq-box

The lightning-uq-box is a PyTorch library that provides various Uncertainty Quantification (UQ) techniques for modern neural network architectures.

We hope to provide the starting point for a collaborative open source effort to make it easier for practitioners to include UQ in their workflows and remove possible barriers of entry. Additionally, we hope this can be a pathway to more easily compare methods across UQ frameworks and potentially enhance the development of new UQ methods for neural networks.

The project is currently under active development, but we nevertheless hope for early feedback, feature requests, or contributions. Please check the Contribution Guide for further information.

The goal of this library is threefold:

  1. Provide implementations for a variety of Uncertainty Quantification methods for Modern Deep Neural Networks that work with a range of neural network architectures and have different theoretical underpinnings
  2. Make it easy to compare UQ methods on a given dataset
  3. Focus on reproducibility of experiments with minimum boiler plate code and standardized evaluation protocols

To this end, each UQ-Method is essentially just a Lightning Module which can be used with a Lightning Data Module and a Trainer to execute training, evaluation and inference for your desired task. The library also utilizes the Lightning Command Line Interface (CLI) for better reproducibility of experiments and setting up experiments at scale.

Theory Guide

For a comprehensive document that provides more mathematical details for each method and generally forms the basis of our implementations, please see the Theory Guide. As a living document, we plan to update it as the library encompasses more methods. If you have any questions, or find typos or errors, feel free to open an issue.

Installation

The recommended way to install the latest released version is via pip,

pip install lightning-uq-box

For the latest development version you can run,

pip install git+https://github.com/lightning-uq-box/lightning-uq-box.git

The package is also available for installation via conda or spack. You can find instructions in the documention

UQ-Methods

In the tables that follow below, you can see what UQ-Method/Task combination is currently supported by the Lightning-UQ-Box via these indicators:

  • ✅ supported
  • ❌ not designed for this task
  • ⏳ in progress

The implemented methods are of course not exhaustive, as the number of new methods keeps increasing. For an overview of methods that we are tracking or are planning to support, take a look at this issue.

Classification of UQ-Methods

The following sections aims to give an overview of different UQ-Methods by grouping them according to some commonalities. We agree that there could be other groupings as well and welcome suggestions to improve this overview. We also follow this grouping for the API documentation in the hopes to make navigation easier.

Single Forward Pass Methods

UQ-Method Regression Classification Segmentation Pixel Wise Regression
Quantile Regression (QR)
Deep Evidential (DE)
Mean Variance Estimation (MVE)
ZigZag
Mixture Density Networks

Approximate Bayesian Methods

UQ-Method Regression Classification Segmentation Pixel Wise Regression
Bayesian Neural Network VI ELBO (BNN_VI_ELBO)
Bayesian Neural Network VI (BNN_VI)
Deep Kernel Learning (DKL)
Deterministic Uncertainty Estimation (DUE)
Laplace Approximation (Laplace)
Monte Carlo Dropout (MC-Dropout)
Stochastic Gradient Langevin Dynamics (SGLD)
Spectral Normalized Gaussian Process (SNGP)
Stochastic Weight Averaging Gaussian (SWAG)
Variational Bayesian Last Layer (VBLL)
Deep Ensemble
Masked Ensemble
Density Uncertainty Layer

Generative Models

UQ-Method Regression Classification Segmentation Pixel Wise Regression
Classification And Regression Diffusion (CARD)
Probabilistic UNet
Variational Auto-Encoder (VAE)

Post-Hoc methods

UQ-Method Regression Classification Segmentation Pixel Wise Regression
Test Time Augmentation (TTA)
Temperature Scaling
Conformal Quantile Regression (Conformal QR)
Regularized Adaptive Prediction Sets (RAPS)
Image to Image Conformal

Tutorials

We try to provide many different tutorials so that users can get a better understanding of implemented methods and get a feel for how they apply to different problems. Head over to the tutorials page to get started. These tutorials can also be launched in google colab if you navigate to the rocket icon at the top of a tutorial page.

Documentation

We aim to provide an extensive documentation on all included UQ-methods that provide some theoretical background, as well as tutorials that illustrate these methods on toy datasets.

Citation

If you use this software in your work, please cite our paper:

@article{JMLR:v26:24-2110,
  author  = {Nils Lehmann and Nina Maria Gottschling and Jakob Gawlikowski and Adam J. Stewart and Stefan Depeweg and Eric Nalisnick},
  title   = {Lightning UQ Box: Uncertainty Quantification for Neural Networks},
  journal = {Journal of Machine Learning Research},
  year    = {2025},
  volume  = {26},
  number  = {54},
  pages   = {1--7},
  url     = {http://jmlr.org/papers/v26/24-2110.html}
}

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lightning_uq_box-0.3.0.tar.gz (139.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lightning_uq_box-0.3.0-py3-none-any.whl (197.9 kB view details)

Uploaded Python 3

File details

Details for the file lightning_uq_box-0.3.0.tar.gz.

File metadata

  • Download URL: lightning_uq_box-0.3.0.tar.gz
  • Upload date:
  • Size: 139.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for lightning_uq_box-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9a714ec771e5c7aa86fbe245a2b9485f2d49e44df506a9df37c262f91238cad3
MD5 2788d2eb921f13615aa589be9d36e70a
BLAKE2b-256 ff676bbcd3674dbf4e74f6c2e36aee2d3c0cb84b300e27f00cb04b132d1ebbaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightning_uq_box-0.3.0.tar.gz:

Publisher: release.yaml on lightning-uq-box/lightning-uq-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lightning_uq_box-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for lightning_uq_box-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ef2f25eba184bc169ac52a7bebe956332775a6ef863bac20627f2b7e31bc568
MD5 5cfaf62aac34cf2f17d5d1e9d06558db
BLAKE2b-256 ad0119b9d3856548c5e0c6d44b8906bf39c350e9038b793a417d01557fe69ad1

See more details on using hashes here.

Provenance

The following attestation bundles were made for lightning_uq_box-0.3.0-py3-none-any.whl:

Publisher: release.yaml on lightning-uq-box/lightning-uq-box

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page