Dimple is an open-source software tool for probabilistic modeling, inference, and learning. Dimple allows models to be specified in the form of probabilistic graphical models (specifically in the form of factor graphs), and can perform inference on those models using a variety of algorithms, including various forms of belief propagation and Gibbs sampling.
Dimple allows a user to construct probabilistic models in a form largely independent of the algorithm used to perform inference on it. This is intended to allow rapid prototyping of complicated probabilistic models, freeing the user from the complexities of the inference algorithms.
- MATLAB and Java versions the API.
- Supports a variety of solvers for performing inference, including sum-product and Gaussian belief propagation (BP), min-sum BP, particle BP, discrete junction tree, linear programming (LP), and Gibbs sampling.
- Supports both undirected and directed graphs.
- Supports both discrete and continuous variables.
- Supports arbitrary factor functions as well as a library of standard distributions and mathematical functions.
- Supports nested graphs.
- Supports rolled-up graphs (repeated HMM-like structures).
A more detailed description can be found in the Dimple User Manual, which can be built from source or can be downloaded from:
- Dimple User Manual / MATLAB Interface / Version 0.07
- Dimple User Manual / Java Interface / Version 0.07
Dimple was developed originally by Lyric Labs under DARPA funded research that resulted in the experimental GP5 processor, designed to accelerate discrete belief propagation operation on factor graphs. Dimple was later extended to support non-BP forms of inference.
Dimple is currently in stasis. No active development is currently planned other than to push out an official release of what is currently on the master branch.
Questions and issues can be posted either to the dimple-users Google group or submitted as an issue on this project. (Note that the full bug list lives on an internal bugzilla server)
Any release announcements or other news will be posted to dimple-users.