ott-jax/ott
Optimal transport tools implemented with the JAX framework, to solve large scale matching problems of any flavor.
What it solves
It provides a scalable way to solve matching problems between two families of points (point clouds) by finding a low-cost way to associate points from one set to another. It addresses the inefficiency of traditional algorithms like the Hungarian algorithm, which is too slow for large datasets, by offering faster solvers that can handle weighted sets of different sizes and partial matchings.
How it works
Built on JAX, the library implements various discrete solvers, most notably the Sinkhorn algorithm, which is optimized with scheduling, momentum, and low-rank extensions to run on accelerators. It also supports advanced problems like Gromov-Wasserstein and Wasserstein barycenters. Additionally, it provides neural network approaches to approximate optimal transport maps between source and target measures.
Who it’s for
Researchers and developers in science and optimization who need to match point clouds or compare datasets using optimal transport theory at scale.
Highlights
- JAX-powered for high-performance execution on accelerators.
- Implements the Sinkhorn algorithm with various speed-up tweaks.
- Supports complex problems such as Gromov-Wasserstein and Wasserstein barycenters.
- Includes neural network-based approximations for optimal transport maps.
- Flexible support for custom cost functions and objectives.
Related
- Project
- Project
- Project
- Project