#mcmc #particle-filtering #importance-sampling

gen-rs

a experimental library for probabilistic programming in Rust

4 releases

0.2.3 Mar 5, 2024
0.2.2 Jan 18, 2024
0.2.1 Jan 12, 2024
0.2.0 Aug 19, 2023

#261 in Science

26 downloads per month

MIT license

58KB
1K SLoC

gen-rs

github crates.io docs.rs status

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

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.

Dependencies

~6–8.5MB
~156K SLoC