Bean Machine is a probabilistic programming language for inference over statistical models written in the Python language using a declarative syntax. Bean Machine is built on top of PyTorch and Bean Machine Graph, a custom C++ backend. Check out our tutorials and Quick Start to get started!
Bean Machine supports Python 3.7-3.10 and PyTorch 1.12.
python -m pip install beanmachine
To download the latest Bean Machine source code from GitHub:
git clone https://github.com/facebookresearch/beanmachine.git
cd beanmachine
Then, you can choose from any of the following installation options.
Installing Bean Machine from source requires three external dependencies: Boost, Eigen, and range-v3
.
For installing Boost and Eigen, we recommend using conda to manage the virtual environment and install the necessary build dependencies.
conda create -n {env name} python=3.8; conda activate {env name}
conda install -c conda-forge boost-cpp eigen=3.4.0
There are multiple ways of installing range-v3
, including through vcpkg
:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install range-v3
Once dependencies are installed, install Bean Machine by running Pip:
python -m pip install .
docker build -t beanmachine .
docker run -it beanmachine:latest bash
If you would like to run the builtin unit tests:
python -m pip install "beanmachine[test]"
pytest .
Bean Machine is MIT licensed, as found in the LICENSE file.