sbi-dev/sbi
sbi is a Python package for simulation-based inference, designed to meet the needs of both researchers and practitioners. Whether you need fine-grained control or an easy-to-use interface, sbi has you covered.
What it solves
sbi is designed for simulation-based inference (SBI), which allows users to estimate the full posterior distribution of a simulator's parameters based on observed real-world data. This is particularly useful when you have a simulator that models a real-world process but cannot easily calculate a likelihood function, making traditional Bayesian inference difficult.
How it works
The package provides a set of neural-network-based inference algorithms that learn to map observed data to parameter distributions. It supports two main categories of methods:
- Amortized Methods: These allow the posterior estimator to be reused across multiple observations without retraining.
- Sequential Methods: These focus on optimizing the number of simulations required for a single observation.
It implements various state-of-the-art algorithms including Neural Posterior Estimation (NPE), Neural Likelihood Estimation (NLE), and Neural Ratio Estimation (NRE), along with their sequential versions (SNPE, SNLE, SNRE).
Who it’s for
It is intended for researchers and practitioners who use simulators to model real-world processes and need to perform Bayesian parameter inference and quantify uncertainty.
Highlights
- Flexible Interfaces: Offers both high-level interfaces for quick implementation and low-level interfaces for for maximum control.
- Braid of Algorithms: Implements a wide range of state-of-the-art inference algorithms (NPE, NLE, NRE, NVI, MNLE).
- Integrated Tooling: Includes built-in validation tools to verify the accuracy of inferred posteriors and plotting tools for analysis.
- PyTorch-based: Built on PyTorch, allowing for GPU acceleration where applicable.
Related
- Project
- Project
- Project
- Project
- Project