This is evolving software. Expect breaking API changes.
gen-rs is an experimental crate for probabilistic programming in Rust. gen-rs was inspired by GenTL, but with Rust-native constructs.
It approximately* implements the Generative Function Interface [GFI] as specified in the Gen.jl whitepaper and Marco Cusumano-Towner's thesis. It provides several kinds of inference procedures built on this interface.
- Dynamically-typed
TrieFn
DSL - Unfold Kernel Combinator
- Example model implementations
- Importance Sampling
- Proposal-based MCMC
- Particle Filtering
Generate visualizations to visualizations
with:
python -m venv venv && source venv/bin/activate && pip install matplotlib
cargo test && python visualization/visualizer.py
(*) gen-rs
does not exactly implement the GFI. More precisely, gen-rs
does not implement retdiff or choice gradients.