1 个不稳定版本
0.3.0 | 2024年7月25日 |
---|
#217 在 科学
131 每月下载量
75KB
1.5K SLoC
modppl
⚠️ 这是一款正在发展的软件。API 可能会更改。
什么是 modppl?
modppl
是用 Rust 语言原生编写的概率编程。通过将建模和推理分离的特质接口(称为 GenFn
)赋予模块化。
推理
- 重要性采样和重采样
- 基于提议和再生 Metropolis-Hastings
- 粒子滤波
动态建模
- 动态类型
DynGenFn
和基于效果的DynGenFnHandler
dyngen!
建模语言(用%=
样本,用/=
追踪)- 动态展开内核
- 查看一些 示例
画廊
使用
python -m venv venv && source venv/bin/activate && pip install matplotlib
cargo test --release && python visualization/visualizer.py
灵感
modppl
受 Gen.jl 白皮书中所描述的生成函数接口(GFI)的启发。
Gen: 一个具有可编程推理的通用概率编程系统。Cusumano-Towner, M. F.; Saad, F. A.; Lew, A.; and Mansinghka, V. K. 在第 40 届 ACM SIGPLAN 编程语言设计实施会议(PLDI ‘19)论文集。(pdf)(bibtex)。
modppl
并不完全实现 GFI。更确切地说,它不支持 retdiff 或 选择梯度。
依赖项
~9MB
~171K SLoC