Need help with sbi?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

mackelab
213 Stars 45 Forks GNU Affero General Public License v3.0 707 Commits 54 Opened issues

Description

Simulation-based inference in PyTorch

Services available

!
?

Need anything else?

Contributors list

PyPI version Contributions welcome Tests codecov GitHub license DOI

sbi: simulation-based inference

Getting Started | Documentation

sbi
is a PyTorch package for simulation-based inference. Simulation-based inference is
the process of finding parameters of a simulator from observations.

sbi
takes a Bayesian approach and returns a full posterior distribution over the parameters, conditional on the observations. This posterior can be amortized (i.e. useful for any observation) or focused (i.e. tailored to a particular observation), with different computational trade-offs.

sbi
offers a simple interface for one-line posterior inference.
from sbi.inference import infer
# import your simulator, define your prior over the parameters
parameter_posterior = infer(simulator, prior, method='SNPE', num_simulations=100)

See below for the available methods of inference,

SNPE
,
SNRE
and
SNLE
.

Installation

sbi
requires Python 3.6 or higher. We recommend to use a
conda
virtual environment (Miniconda installation instructions). If
conda
is installed on the system, an environment for installing
sbi
can be created as follows: ```commandline

Create an environment for sbi (indicate Python 3.6 or higher); activate it

$ conda create -n sbienv python=3.7 && conda activate sbienv ```

Independent of whether you are using

conda
or not,
sbi
can be installed using
pip
:
commandline
$ pip install sbi

To test the installation, drop into a python prompt and run

python
from sbi.examples.minimal import simple
posterior = simple()
print(posterior)

Inference Algorithms

The following algorithms are currently available:

Sequential Neural Posterior Estimation (SNPE)

Sequential Neural Likelihood Estimation (SNLE)

Sequential Neural Ratio Estimation (SNRE)

Feedback and Contributions

We would like to hear how

sbi
is working for your inference problems as well as receive bug reports, pull requests and other feedback (see contribute).

Acknowledgements

sbi
is the successor (using PyTorch) of the
delfi
package. It was started as a fork of Conor M. Durkan's
lfi
.
sbi
runs as a community project; development is coordinated at the mackelab. See also credits.

Support

sbi
has been developed in the context of the ADIMEM grant, project A. ADIMEM is a BMBF grant awarded to groups at the Technical University of Munich, University of Tübingen and Research Center caesar of the Max Planck Gesellschaft.

License

Affero General Public License v3 (AGPLv3)

Citation

If you use

sbi
consider citing the corresponding paper:
@article{tejero-cantero2020sbi,
  doi = {10.21105/joss.02505},
  url = {https://doi.org/10.21105/joss.02505},
  year = {2020},
  publisher = {The Open Journal},
  volume = {5},
  number = {52},
  pages = {2505},
  author = {Alvaro Tejero-Cantero and Jan Boelts and Michael Deistler and Jan-Matthis Lueckmann and Conor Durkan and Pedro J. Gonçalves and David S. Greenberg and Jakob H. Macke},
  title = {sbi: A toolkit for simulation-based inference},
  journal = {Journal of Open Source Software}
}

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.