A JAX library for distributions, bijections, and normalizing flows implemented as Equinox modules.
FlowJAX is a Python library built on JAX and Equinox that provides implementations of probability distributions, bijections, and normalizing flow models. It enables flexible density estimation and sampling while maintaining full compatibility with JAX transformations like automatic differentiation and just-in-time compilation.
Machine learning researchers and practitioners working with probabilistic models, normalizing flows, or density estimation who want JAX-compatible implementations with modern flow architectures.
FlowJAX offers a clean, composable interface where all components are PyTree-compatible Equinox modules, enabling seamless integration with JAX's transformation system while providing state-of-the-art normalizing flow implementations and flexible training methods.
FlowJAX is a Python library built on JAX and Equinox that provides tools for working with probability distributions, bijections, and normalizing flows. It enables flexible density estimation and sampling while maintaining compatibility with JAX transformations like automatic differentiation and just-in-time compilation.
FlowJAX emphasizes composability and JAX compatibility, treating distributions and transformations as first-class PyTree objects that seamlessly integrate with the JAX ecosystem for high-performance machine learning research.
All distributions and bijections are PyTree-compatible Equinox modules, enabling seamless use with JAX transformations like automatic differentiation and just-in-time compilation without extra boilerplate.
Implements state-of-the-art normalizing flows such as coupling flows, masked autoregressive flows, and neural spline flows, providing a comprehensive toolkit for research and experimentation.
Includes training scripts for maximum likelihood estimation, variational inference, and contrastive learning, supporting diverse probabilistic modeling tasks as highlighted in the README.
Offers built-in first-class support for conditional distributions, making it straightforward to implement conditional density estimation and sampling for complex models.
The library is in early development with explicit warnings about potential breaking changes between major releases, making it unreliable for production or long-term projects.
Requires familiarity with JAX and Equinox, which can be a steep barrier for teams not already using these tools, limiting adoption outside specialized ML research circles.
Compared to established alternatives like TensorFlow Probability or Pyro, FlowJAX has a smaller community, fewer pre-trained models, and less extensive documentation or third-party integrations.
Google Research
Probabilistic reasoning and statistical analysis in TensorFlow
Massively parallel rigidbody physics simulation on accelerator hardware.
Monte Carlo tree search in JAX
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.