transport op• Data kinds: signal × signal × matrix → transport_plan
• Call: import fullseye as fs; fs.ledger.sinkhorn(a, b, cost, reg=0.05, n_iter=2000, tol=1e-09) (to call the implementation directly, import colortransport; colortransport.sinkhorn(a, b, cost, reg=0.05, n_iter=2000, tol=1e-09); from the registry, opscolortransport.get("sinkhorn"))
The entropically regularised optimal-transport plan (Cuturi, NIPS 2013).
It is not the exact solution. Making reg smaller brings it closer to the exact solution, but at the same time it becomes numerically unstable (the exponentials underflow). That lowering reg shrinks the gap to the exact solution is itself pinned by a test.
ndarray
A transport plan of shape (n, m). Row and column sums match a / b
(up to tol). If it does not converge, RuntimeError -- returning the last iteration
without convergence would silently send a plan whose row sums do not add up downstream.
• colorimetry — Colorimetry and spectra — colour is fixed only by spectrum × illuminant × observer
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• color_transport — py -3.11 examples/color_transport.py
transport_plan as input)transport_cost · apply_transport
transport)wasserstein_1d · transport_plan_1d · sinkhorn_distance · sinkhorn_divergence
*Provenance: colortransport.py — COLORTRANSPORT operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.