gen-rs
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.
Modeling
- Dynamically-typed
TrieFnDSL - Unfold Kernel Combinator
- Example model implementations
Inference Procedures
- 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
Disclaimer
(*) gen-rs does not exactly implement the GFI. More precisely, gen-rs does not implement retdiff or choice gradients.