POT: Python Optimal Transport
This open source Python library provide several solvers for optimization problems related to Optimal Transport for signal, image processing and machine learning.
Website and documentation: https://PythonOT.github.io/
Source Code (MIT): https://github.com/PythonOT/POT
POT provides the following generic OT solvers (links to examples):
OT Network Simplex solver for the linear program/ Earth Movers Distance [1] .
Conditional gradient [6] and Generalized conditional gradient for regularized OT [7].
Entropic regularization OT solver with Sinkhorn Knopp Algorithm [2] , stabilized version [9] [10], greedy Sinkhorn [22] and Screening Sinkhorn [26] with optional GPU implementation (requires cupy).
Bregman projections for Wasserstein barycenter [3], convolutional barycenter [21] and unmixing [4].
Sinkhorn divergence [23] and entropic regularization OT from empirical data.
Smooth optimal transport solvers (dual and semi-dual) for KL and squared L2 regularizations [17].
Non regularized Wasserstein barycenters [16] ) with LP solver (only small scale).
Gromov-Wasserstein distances and GW barycenters (exact [13] and regularized [12])
Fused-Gromov-Wasserstein distances solver and FGW barycenters [24]
Stochastic solver for Large-scale Optimal Transport (semi-dual problem [18] and dual problem [19])
Non regularized free support Wasserstein barycenters [20].
Unbalanced OT with KL relaxation and barycenter [10, 25].
Partial Wasserstein and Gromov-Wasserstein (exact [29] and entropic [3] formulations).
POT provides the following Machine Learning related solvers:
Optimal transport for domain adaptation with group lasso regularization, Laplacian regularization [5] [30] and semi supervised setting.
Linear OT mapping [14] and Joint OT mapping estimation [8].
Wasserstein Discriminant Analysis [11] (requires autograd + pymanopt).
JCPOT algorithm for multi-source domain adaptation with target shift [27].
Some demonstrations are available in the documentation.
github地址:https://github.com/PythonOT/POT