Torch Uncertainty is a package designed to help you leverage uncertainty quantification techniques and make your neural networks more reliable. It is based on PyTorch Lightning to handle multi-GPU training and inference and automatic logging through tensorboard.
This package provides a multi-level API, including:
- ready-to-train baselines on research datasets, such as CIFAR and ImageNet
- baselines available for training on your datasets
- layers available for use in your networks
This package also contains the official implementation of Packed-Ensembles.
If you find the corresponding models interesting, please consider citing our paper:
@inproceedings{laurent2023packed,
title={Packed-Ensembles for Efficient Uncertainty Estimation},
author={Laurent, Olivier and Lafage, Adrien and Tartaglione, Enzo and Daniel, Geoffrey and Martinez, Jean-Marc and Bursuc, Andrei and Franchi, Gianni},
booktitle={ICLR},
year={2023}
}
The package can be installed from PyPI or from source.
Install the package via pip:
pip install torch-uncertainty
Installation guidelines for poetry are available on https://python-poetry.org/docs/. They boil down to executing the following command:
curl -sSL https://install.python-poetry.org | python3 -
Clone the repository:
git clone https://github.com/ENSTA-U2IS/torch-uncertainty.git
Create a new conda environment and activate it with:
conda create -n uncertainty && conda activate uncertainty
Install the package using poetry:
poetry install torch-uncertainty
or, for development,
poetry install torch-uncertainty --with dev
Depending on your system, you may encounter errors. If so, kill the process and add PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
at the beginning of every poetry install
commands.
In case that you would like to contribute, install from source and add the pre-commit hooks with pre-commit install
Please find the documentation at torch-uncertainty.github.io.
A quickstart is available at torch-uncertainty.github.io/quickstart.
To date, the following baselines are implemented:
- Deep Ensembles
- Masksembles
- Packed-Ensembles
You may find a lot of information about modern uncertainty estimation techniques on the Awesome Uncertainty in Deep Learning.