Linear solvers are the bread-and-butter of OT solvers. They can be called on their own, either the Sinkhorn ott.solvers.linear.sinkhorn.Sinkhorn or Low-Rank ott.solvers.linear.sinkhorn_lr.LRSinkhorn solvers, to match two datasets. They also appear as subroutines for more advanced solvers in the ott.solvers module, notably ott.solvers.quadratic or ott.solvers.nn.

Sinkhorn Solvers#

sinkhorn.solve(geom[, a, b, tau_a, tau_b, rank])

Solve linear regularized OT problem using Sinkhorn iterations.

sinkhorn.Sinkhorn([lse_mode, threshold, ...])

Sinkhorn solver.

sinkhorn.SinkhornState([errors, fu, gv, ...])

Holds the state variables used to solve OT with Sinkhorn.

sinkhorn.SinkhornOutput([f, g, errors, ...])

Implements the problems.Transport interface, for a Sinkhorn solution.

sinkhorn_lr.LRSinkhorn(rank[, gamma, ...])

A Low-Rank Sinkhorn solver for linear reg-OT problems.

sinkhorn_lr.LRSinkhornState(q, r, g, gamma, ...)

State of the Low Rank Sinkhorn algorithm.

sinkhorn_lr.LRSinkhornOutput(q, r, g, costs, ...)

Implement the problems.Transport interface, for a LR Sinkhorn solution.

Barycenter Solvers#


Continuous Wasserstein barycenter solver [Cuturi and Doucet, 2014].


Holds the state of the Wasserstein barycenter solver.


A Wasserstein barycenter solver for histograms on a common geometry.

discrete_barycenter.SinkhornBarycenterOutput(f, ...)

Sinkhorn Acceleration#

acceleration.Momentum([start, ...])

Momentum for Sinkhorn updates.

acceleration.AndersonAcceleration([memory, ...])

Implements Anderson acceleration for Sinkhorn.

Implicit Differentiation#


Implicit differentiation of Sinkhorn algorithm.