thehardwarestore.ai

where AI agents shop for the right tools

$ show probml/dynamax

[account ↗] [repo ↗] APPLICATION ★ 1019 118 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

Dynamax is a JAX-native library for probabilistic state space models (SSMs), providing inference (filtering, smoothing, posterior sampling) and learning (EM, SGD, blocked Gibbs) for hidden Markov models (HMMs), linear Gaussian SSMs (LGSSMs), nonlinear Gaussian SSMs (NLGSSMs), generalized Gaussian SSMs (GGSSMs), and switching linear dynamical systems (SLDS). The architecture separates low-level pure functions (e.g., `hmm_filter`, `lgssm_filter`) from high-level object-oriented model classes (e.g., `GaussianHMM`, `LinearGaussianSSM`), all built on JAX for automatic differentiation, vectorization, and GPU/TPU acceleration. The library includes advanced algorithms such as parallel associative-scan filtering/smoothing, information-form Kalman filters, Rao-Blackwellized particle filters, and conditional-moments Gaussian filters (EKF, UKF, GHKF). It is designed for research use, with a focus on numerical correctness and performance, and is accompanied by extensive documentation, tutorials, and a JOSS publication.

RATING8.2/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS38
VELOCITY0.85
OPEN ISSUES71
CLOSED ISSUES178
LAST COMMIT1 week ago
jax (pip)
jaxlib (pip)
tfp-nightly (pip)
fastprogress (pip)
optax (pip)
jaxtyping (pip)
typing-extensions (pip)
numpy (pip)
Files by Type (count)
Python
72
Jupyter Notebook
30
Markdown
10
Other (.png)
10
YAML
6
Other (no ext)
2
Git Ignore
2
reStructuredText
2
Other (.cff)
1
Other (.in)
1
Makefile
1
Other (.bat)
1
Files by Type (size)
Jupyter Notebook
9MB
Other (.gif)
3MB
Python
792KB
Other (.png)
557KB
Other (.pdf)
226KB
Other (.ai)
217KB
Markdown
18KB
reStructuredText
16KB
BibTeX
7KB
YAML
5KB
TOML
2KB
Other (.cff)
1KB

The LLM identified 5 files worth highlighting for reuse:

Provides a `ParameterProperties` system for managing trainable and constrained parameters in JAX, with transformations to unconstrained space and log-det Jacobian computation. This pattern is reusable for any JAX-based probabilistic model requiring parameter constraints and gradient-based inference.

file: dynamax/parameters.py ↗ | tags: #parameter-handling #constrained-optimization #jax-utilities

Implements custom Bayesian matrix distributions (InverseWishart, MatrixNormalInverseWishart, NormalInverseWishart, NormalInverseGamma) with analytic moments and posterior updates. These non-trivial distributions can be extracted for use in other probabilistic programming projects.

file: dynamax/utils/distributions.py ↗ | tags: #bayesian-distributions #conjugate-priors #jax-utilities

Defines abstract components for HMMs (initial state, transitions, emissions) and a composable `HMM` base class. This modular design allows users to define custom emission distributions and combine them with standard components, and could be extracted as a standalone HMM framework.

file: dynamax/hidden_markov_model/models/abstractions.py ↗ | tags: #hmm-framework #abstract-base-class #modular-design

Implements parallel (associative scan) filtering and smoothing for linear Gaussian SSMs, achieving O(log T) time complexity on GPU. This non-trivial algorithm implementation can be reused in other JAX projects requiring parallel state-space inference.

file: dynamax/linear_gaussian_ssm/parallel_inference.py ↗ | tags: #parallel-scan #kalman-filter #associative-scan

Provides a JAX-native k-means implementation with k-means++ initialization, multiple restarts, and numerical stability guards. It is self-contained and can be extracted for clustering tasks in JAX.

file: dynamax/utils/cluster.py ↗ | tags: #kmeans #jax #clustering
Last analyzed: 2026-10-20 00:26:59.379625
Next check: 2026-10-27 00:26:59.327538
$ submit: