PythonOT/POT
POT : Python Optimal Transport
What it solves
POT (Python Optimal Transport) provides a comprehensive set of solvers for optimization problems related to Optimal Transport (OT). It addresses the challenge of efficiently computing the distance and mapping between probability distributions, which is essential for signal processing, image processing, and machine learning tasks.
How it works
The library implements a wide variety of OT solvers, ranging from exact linear programs (like the Network Simplex solver) to regularized versions (such as Sinkhorn Knopp for entropic regularization). It supports various OT formulations, including Gromov-Wasserstein distances for comparing distributions in different spaces, unbalanced and partial OT for distributions with different masses, and Sliced Wasserstein distances for high-dimensional data. To ensure flexibility and performance, it integrates with multiple backends including PyTorch, JAX, TensorFlow, NumPy, and CuPy.
Who it’s for
This library is designed for researchers and practitioners in machine learning, signal processing, and image processing who need to measure distances between distributions or perform domain adaptation and subspace learning.
Highlights
- Diverse Solver Set: Includes exact linear OT, entropic and quadratic regularized OT, and Gromov-Wasserstein variants.
- ML Integration: Provides specialized solvers for domain adaptation, mapping estimation, and Graph Neural Network (GNN) layers.
- Barycenter Computation: Supports Wasserstein and GW barycenters for both fixed and free support.
- Multi-Backend Support: Compatible with PyTorch, JAX, TensorFlow, NumPy, and CuPy arrays for seamless integration into deep learning pipelines.
Related
- Project
- Project
- Project
- Project
- Project