A JAX-powered library for solving large-scale optimal transport problems, including matching, barycenters, and neural approximations.
OTT-JAX is a Python library built on JAX that provides tools for solving optimal transport problems at scale. It implements discrete solvers like the Sinkhorn algorithm and neural network approaches to compute couplings, barycenters, and transport maps between point clouds or measures. The library addresses the challenge of efficiently matching datasets with flexible cost functions and geometric domains.
Researchers, data scientists, and machine learning practitioners working on matching problems, distribution alignment, or optimal transport applications in fields like computational biology, computer vision, and generative modeling.
Developers choose OTT-JAX for its JAX-powered performance on accelerators, comprehensive suite of OT solvers, and flexibility in handling various problem formulations. Its integration with JAX enables automatic differentiation and parallelization, making it suitable for both research prototyping and large-scale deployments.
Optimal transport tools implemented with the JAX framework, to solve large scale matching problems of any flavor.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages JAX for automatic differentiation and GPU/TPU acceleration, enabling scalable OT computations on large datasets, as highlighted in the JAX integration feature.
Implements discrete solvers like Sinkhorn with scheduling and momentum, plus advanced problems like Gromov-Wasserstein and Wasserstein barycenters, covering a wide range of OT tasks.
Provides neural network approaches to approximate optimal transport maps between measures, bridging discrete and continuous methods for flexible modeling.
Supports diverse geometric domains and custom cost functions for comparing point clouds, allowing versatile applications beyond standard Euclidean spaces.
Requires familiarity with both optimal transport theory and JAX, making it less accessible for beginners or those new to these domains, as it targets researchers and practitioners.
Tight integration with JAX limits portability to other frameworks, which could be a barrier for teams not invested in the JAX ecosystem or needing cross-framework compatibility.
Some solvers, such as those for large point clouds or low-rank extensions, can be memory-heavy, potentially restricting use on resource-constrained systems without accelerators.