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, accelerator-ready library for solving optimal transport (OT) problems. This allows users to efficiently match two point clouds or families of points based on a cost function, overcoming the $O(n^3)$ complexity of traditional algorithms like the Hungarian algorithm.

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. It also supports neural network approaches to approximate optimal transport maps between source and target measures. Beyond basic matching, it handles advanced problems like Gromov-Wasserstein and Wasserstein barycenters to compare point clouds in versatile settings.

Who it’s for

Researchers and developers working with point cloud matching, mathematical optimization, and data science who need to perform high-performance computations on GPUs or TPUs.

Highlights

  • JAX-powered for high-performance execution on accelerators.
  • Implements the Sinkhorn algorithm with various speed-up tweaks.
  • Supports neural network-based approximations of transport maps.
  • Capable of handling Gromov-Wasserstein and Wasserstein barycenters.
  • Flexible definitions for custom cost functions and objectives.

Related

  • Project
  • Project
  • Project
  • Project
  • Project