Pyro is a flexible, scalable deep probabilistic programming library built on PyTorch. Notably, it was designed with these principles in mind:
- Universal: Pyro is a universal PPL -- it can represent any computable probability distribution.
- Scalable: Pyro scales to large data sets with little overhead compared to hand-written code.
- Minimal: Pyro is agile and maintainable. It is implemented with a small core of powerful, composable abstractions.
- Flexible: Pyro aims for automation when you want it, control when you need it. This is accomplished through high-level abstractions to express generative and inference models, while allowing experts easy-access to customize inference.
Installing a stable Pyro release
First install PyTorch.
Install via pip:
pip install pyro-ppl
pip3 install pyro-ppl
Install from source:
git clone firstname.lastname@example.org:uber/pyro.git cd pyro git checkout master # master is pinned to the latest release pip install .
Install with extra packages:
pip install pyro-ppl[extras] # for running examples/tutorials
Installing Pyro dev branch
For recent features you can install Pyro from source.
To install a compatible CPU version of PyTorch on OSX / Linux, you could use the PyTorch install helper script.
Alternatively, build PyTorch following instructions in the PyTorch README.
git clone --recursive https://github.com/pytorch/pytorch cd pytorch git checkout 200fb22 # <---- a well-tested commit
python setup.py install
MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install
Finally install Pyro
git clone https://github.com/uber/pyro cd pyro pip install .
Running Pyro from a Docker Container
Refer to the instructions here.