This example illustrates the computation of EMD and Sinkhorn transport plans and their visualization.
# Author: Remi Flamary <remi.flamary@unice.fr> # # License: MIT License # sphinx_gallery_thumbnail_number = 3 import numpy as np import matplotlib.pylab as pl import ot import ot.plot from ot.datasets import make_1D_gauss as gaussGenerate data Plot distributions and loss matrix
pl.figure(1, figsize=(6.4, 3)) pl.plot(x, a, "b", label="Source distribution") pl.plot(x, b, "r", label="Target distribution") pl.legend()
<matplotlib.legend.Legend object at 0x7f590d9f53f0>
(<Axes: >, <Axes: >, <Axes: >)Solve EMD
# use fast 1D solver G0 = ot.emd_1d(x, x, a, b) # Equivalent to # G0 = ot.emd(a, b, M) pl.figure(3, figsize=(5, 5)) ot.plot.plot1D_mat(a, b, G0, "OT matrix G0")
(<Axes: >, <Axes: >, <Axes: >)Solve Sinkhorn
It. |Err ------------------- 0|2.861463e-01| 10|1.860154e-01| 20|8.144529e-02| 30|3.130143e-02| 40|1.178815e-02| 50|4.426078e-03| 60|1.661047e-03| 70|6.233110e-04| 80|2.338932e-04| 90|8.776627e-05| 100|3.293340e-05| 110|1.235791e-05| 120|4.637176e-06| 130|1.740051e-06| 140|6.529356e-07| 150|2.450071e-07| 160|9.193632e-08| 170|3.449812e-08| 180|1.294505e-08| 190|4.857493e-09| It. |Err ------------------- 200|1.822723e-09|
Total running time of the script: (0 minutes 0.269 seconds)
Gallery generated by Sphinx-Gallery
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4