pyprob
is a PyTorch-based library for probabilistic programming and inference compilation.
Inference compilation is a technique for performing fast inference in generative models implemented as probabilistic programs, using deep neural networks to parameterize proposal distributions of a sequential importance sampling inference engine.
- Python 3.5 or higher. We recommend Anaconda.
- Latest PyTorch, installed by following instructions on the PyTorch web site.
To use a cutting-edge version, clone this repository and install the pyprob
package using:
git clone git@github.com:probprog/pyprob.git
cd pyprob
pip install .
To use the latest version available in Python Package Index, run:
pip install pyprob
A CUDA + PyTorch + pyprob image with the latest passing commit is automatically pushed to probprog/pyprob:latest
https://hub.docker.com/r/probprog/pyprob/
pyprob
has two main modes of operation:
- Probabilistic programming and inference compilation fully in Python
- Interfacing with 3rd party probabilistic programming libraries (e.g., Anglican, CPProb) through a ZeroMQ/FlatBuffers-based protocol
NOTE: This is currently a work in progress, and the code in this public repository is under development. A website with documentation and examples will be provided in due course.
Our paper at AISTATS 2017 provides an in-depth description of the inference compilation technique.
If you use pyprob
and/or would like to cite our paper, please use the following information:
@inproceedings{le-2016-inference,
author = {Le, Tuan Anh and Baydin, Atılım Güneş and Wood, Frank},
booktitle = {Proceedings of the 20th International Conference on Artificial Intelligence and Statistics (AISTATS)},
title = {Inference Compilation and Universal Probabilistic Programming},
year = {2017},
volume = {54},
pages = {1338--1348},
series = {Proceedings of Machine Learning Research},
address = {Fort Lauderdale, FL, USA},
publisher = {PMLR}
}
pyprob
is distributed under the MIT License.
pyprob
has been developed by Tuan Anh Le and Atılım Güneş Baydin within the Probabilistic Programming Group at the University of Oxford, led by Frank Wood.
For the full list of contributors, see: