master
Directory actions
More options
Directory actions
More options
master
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
<!DOCTYPE html> <html class="writer-html5" lang="en" > <head> <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>POT: Python Optimal Transport — POT Python Optimal Transport 0.8.0 documentation</title> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="_static/sg_gallery.css" type="text/css" /> <link rel="stylesheet" href="_static/sg_gallery-binder.css" type="text/css" /> <link rel="stylesheet" href="_static/sg_gallery-dataframe.css" type="text/css" /> <link rel="stylesheet" href="_static/sg_gallery-rendered-html.css" type="text/css" /> <!--[if lt IE 9]> <script src="_static/js/html5shiv.min.js"></script> <![endif]--> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script src="_static/jquery.js"></script> <script src="_static/underscore.js"></script> <script src="_static/doctools.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search" > <a href="index.html" class="icon icon-home"> POT Python Optimal Transport </a> <div class="version"> 0.8.0 </div> <div role="search"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <input type="text" name="q" placeholder="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> <ul> <li class="toctree-l1"><a class="reference internal" href="index.html">POT: Python Optimal Transport</a></li> <li class="toctree-l1"><a class="reference internal" href="quickstart.html">Quick start guide</a></li> <li class="toctree-l1"><a class="reference internal" href="all.html">API and modules</a></li> <li class="toctree-l1"><a class="reference internal" href="auto_examples/index.html">Examples gallery</a></li> <li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="index.html">POT Python Optimal Transport</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="Page navigation"> <ul class="wy-breadcrumbs"> <li><a href="index.html" class="icon icon-home"></a> »</li> <li>POT: Python Optimal Transport</li> <li class="wy-breadcrumbs-aside"> <a href="_sources/readme.rst.txt" rel="nofollow"> View page source</a> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <section id="pot-python-optimal-transport"> <h1>POT: Python Optimal Transport<a class="headerlink" href="#pot-python-optimal-transport" title="Permalink to this headline"></a></h1> <p><a class="reference external" href="https://badge.fury.io/py/POT"><img alt="PyPI version" src="https://badge.fury.io/py/POT.svg" /></a> <a class="reference external" href="https://anaconda.org/conda-forge/pot"><img alt="Anaconda Cloud" src="https://anaconda.org/conda-forge/pot/badges/version.svg" /></a> <a class="reference external" href="https://github.com/PythonOT/POT/actions"><img alt="Build Status" src="https://github.com/PythonOT/POT/workflows/build/badge.svg?branch=master&event=push" /></a> <a class="reference external" href="https://codecov.io/gh/PythonOT/POT"><img alt="Codecov Status" src="https://codecov.io/gh/PythonOT/POT/branch/master/graph/badge.svg" /></a> <a class="reference external" href="https://pepy.tech/project/pot"><img alt="Downloads" src="https://pepy.tech/badge/pot" /></a> <a class="reference external" href="https://anaconda.org/conda-forge/pot"><img alt="Anaconda downloads" src="https://anaconda.org/conda-forge/pot/badges/downloads.svg" /></a> <a class="reference external" href="https://github.com/PythonOT/POT/blob/master/LICENSE"><img alt="License" src="https://anaconda.org/conda-forge/pot/badges/license.svg" /></a></p> <p>This open source Python library provide several solvers for optimization problems related to Optimal Transport for signal, image processing and machine learning.</p> <p>Website and documentation: <a class="reference external" href="https://PythonOT.github.io/">https://PythonOT.github.io/</a></p> <p>Source Code (MIT): <a class="reference external" href="https://github.com/PythonOT/POT">https://github.com/PythonOT/POT</a></p> <p>POT provides the following generic OT solvers (links to examples):</p> <ul class="simple"> <li><p><a class="reference external" href="auto_examples/plot_OT_1D.html">OT Network Simplex solver</a> for the linear program/ Earth Movers Distance [1] .</p></li> <li><p><a class="reference external" href="auto_examples/plot_optim_OTreg.html">Conditional gradient</a> [6] and <a class="reference external" href="auto_examples/plot_optim_OTreg.html">Generalized conditional gradient</a> for regularized OT [7].</p></li> <li><p>Entropic regularization OT solver with <a class="reference external" href="auto_examples/plot_OT_1D.html">Sinkhorn Knopp Algorithm</a> [2] , stabilized version [9] [10] [34], greedy Sinkhorn [22] and <a class="reference external" href="auto_examples/plot_screenkhorn_1D.html">Screening Sinkhorn [26]</a>.</p></li> <li><p>Bregman projections for <a class="reference external" href="auto_examples/barycenters/plot_barycenter_lp_vs_entropic.html">Wasserstein barycenter</a> [3], <a class="reference external" href="auto_examples/barycenters/plot_convolutional_barycenter.html">convolutional barycenter</a> [21] and unmixing [4].</p></li> <li><p>Sinkhorn divergence [23] and entropic regularization OT from empirical data.</p></li> <li><p>Debiased Sinkhorn barycenters <a class="reference external" href="auto_examples/barycenters/plot_debiased_barycenter.html">Sinkhorn divergence barycenter</a> [37]</p></li> <li><p><a class="reference external" href="auto_examples/plot_OT_1D_smooth.html">Smooth optimal transport solvers</a> (dual and semi-dual) for KL and squared L2 regularizations [17].</p></li> <li><p>Non regularized <a class="reference external" href="auto_examples/barycenters/plot_barycenter_lp_vs_entropic.html">Wasserstein barycenters [16]</a>) with LP solver (only small scale).</p></li> <li><p><a class="reference external" href="auto_examples/gromov/plot_gromov.html">Gromov-Wasserstein distances</a> and <a class="reference external" href="auto_examples/gromov/plot_gromov_barycenter.html">GW barycenters</a> (exact [13] and regularized [12]), differentiable using gradients from</p></li> <li><p><a class="reference external" href="auto_examples/gromov/plot_fgw.html#sphx-glr-auto-examples-plot-fgw-py">Fused-Gromov-Wasserstein distances solver</a> and <a class="reference external" href="auto_examples/gromov/plot_barycenter_fgw.html">FGW barycenters</a> [24]</p></li> <li><p><a class="reference external" href="auto_examples/plot_stochastic.html">Stochastic solver</a> for Large-scale Optimal Transport (semi-dual problem [18] and dual problem [19])</p></li> <li><p><a class="reference external" href="auto_examples/gromov/plot_gromov.html">Stochastic solver of Gromov Wasserstein</a> for large-scale problem with any loss functions [33]</p></li> <li><p>Non regularized <a class="reference external" href="auto_examples/barycenters/plot_free_support_barycenter.html">free support Wasserstein barycenters</a> [20].</p></li> <li><p><a class="reference external" href="auto_examples/unbalanced-partial/plot_UOT_1D.html">Unbalanced OT</a> with KL relaxation and <a class="reference external" href="auto_examples/unbalanced-partial/plot_UOT_barycenter_1D.html">barycenter</a> [10, 25].</p></li> <li><p><a class="reference external" href="auto_examples/unbalanced-partial/plot_partial_wass_and_gromov.html">Partial Wasserstein and Gromov-Wasserstein</a> (exact [29] and entropic [3] formulations).</p></li> <li><p><a class="reference external" href="auto_examples/sliced-wasserstein/plot_variance.html">Sliced Wasserstein</a> [31, 32] and Max-sliced Wasserstein [35] that can be used for gradient flows [36].</p></li> <li><p><a class="reference external" href="https://pythonot.github.io/quickstart.html#solving-ot-with-multiple-backends">Several backends</a> for easy use of POT with <a class="reference external" href="https://pytorch.org/">Pytorch</a>/<a class="reference external" href="https://github.com/google/jax">jax</a>/<a class="reference external" href="https://numpy.org/">Numpy</a> arrays.</p></li> </ul> <p>POT provides the following Machine Learning related solvers:</p> <ul class="simple"> <li><p><a class="reference external" href="auto_examples/domain-adaptation/plot_otda_classes.html">Optimal transport for domain adaptation</a> with <a class="reference external" href="auto_examples/domain-adaptation/plot_otda_classes.html">group lasso regularization</a>, <a class="reference external" href="auto_examples/domain-adaptation/plot_otda_laplacian.html">Laplacian regularization</a> [5] [30] and <a class="reference external" href="auto_examples/domain-adaptation/plot_otda_semi_supervised.html">semi supervised setting</a>.</p></li> <li><p><a class="reference external" href="auto_examples/domain-adaptation/plot_otda_linear_mapping.html">Linear OT mapping</a> [14] and <a class="reference external" href="auto_examples/domain-adaptation/plot_otda_mapping.html">Joint OT mapping estimation</a> [8].</p></li> <li><p><a class="reference external" href="auto_examples/others/plot_WDA.html">Wasserstein Discriminant Analysis</a> [11] (requires autograd + pymanopt).</p></li> <li><p><a class="reference external" href="auto_examples/domain-adaptation/plot_otda_jcpot.html">JCPOT algorithm for multi-source domain adaptation with target shift</a> [27].</p></li> </ul> <p>Some other examples are available in the <a class="reference external" href="auto_examples/index.html">documentation</a>.</p> <section id="using-and-citing-the-toolbox"> <h2>Using and citing the toolbox<a class="headerlink" href="#using-and-citing-the-toolbox" title="Permalink to this headline"></a></h2> <p>If you use this toolbox in your research and find it useful, please cite POT using the following reference from our <a class="reference external" href="https://jmlr.org/papers/v22/20-451.html">JMLR paper</a>:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>Rémi Flamary, Nicolas Courty, Alexandre Gramfort, Mokhtar Z. Alaya, Aurélie Boisbunon, Stanislas Chambon, Laetitia Chapel, Adrien Corenflos, Kilian Fatras, Nemo Fournier, Léo Gautheron, Nathalie T.H. Gayraud, Hicham Janati, Alain Rakotomamonjy, Ievgen Redko, Antoine Rolet, Antony Schutz, Vivien Seguy, Danica J. Sutherland, Romain Tavenard, Alexander Tong, Titouan Vayer, POT Python Optimal Transport library, Journal of Machine Learning Research, 22(78):1−8, 2021. Website: https://pythonot.github.io/ </pre></div> </div> <p>In Bibtex format:</p> <div class="highlight-bibtex notranslate"><div class="highlight"><pre><span></span><span class="nc">@article</span><span class="p">{</span><span class="nl">flamary2021pot</span><span class="p">,</span> <span class="na">author</span> <span class="p">=</span> <span class="s">{R{\'e}mi Flamary and Nicolas Courty and Alexandre Gramfort and Mokhtar Z. Alaya and Aur{\'e}lie Boisbunon and Stanislas Chambon and Laetitia Chapel and Adrien Corenflos and Kilian Fatras and Nemo Fournier and L{\'e}o Gautheron and Nathalie T.H. Gayraud and Hicham Janati and Alain Rakotomamonjy and Ievgen Redko and Antoine Rolet and Antony Schutz and Vivien Seguy and Danica J. Sutherland and Romain Tavenard and Alexander Tong and Titouan Vayer}</span><span class="p">,</span> <span class="na">title</span> <span class="p">=</span> <span class="s">{POT: Python Optimal Transport}</span><span class="p">,</span> <span class="na">journal</span> <span class="p">=</span> <span class="s">{Journal of Machine Learning Research}</span><span class="p">,</span> <span class="na">year</span> <span class="p">=</span> <span class="s">{2021}</span><span class="p">,</span> <span class="na">volume</span> <span class="p">=</span> <span class="s">{22}</span><span class="p">,</span> <span class="na">number</span> <span class="p">=</span> <span class="s">{78}</span><span class="p">,</span> <span class="na">pages</span> <span class="p">=</span> <span class="s">{1-8}</span><span class="p">,</span> <span class="na">url</span> <span class="p">=</span> <span class="s">{http://jmlr.org/papers/v22/20-451.html}</span> <span class="p">}</span> </pre></div> </div> <section id="installation"> <h3>Installation<a class="headerlink" href="#installation" title="Permalink to this headline"></a></h3> <p>The library has been tested on Linux, MacOSX and Windows. It requires a C++ compiler for building/installing the EMD solver and relies on the following Python modules:</p> <ul class="simple"> <li><p>Numpy (>=1.16)</p></li> <li><p>Scipy (>=1.0)</p></li> <li><p>Cython (>=0.23) (build only, not necessary when installing from pip or conda)</p></li> </ul> </section> </section> <section id="pip-installation"> <h2>Pip installation<a class="headerlink" href="#pip-installation" title="Permalink to this headline"></a></h2> <p>You can install the toolbox through PyPI with:</p> <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">pip install POT</span> </pre></div> </div> <p>or get the very latest version by running:</p> <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">pip install -U https://github.com/PythonOT/POT/archive/master.zip # with --user for user install (no root)</span> </pre></div> </div> </section> <section id="anaconda-installation-with-conda-forge"> <h2>Anaconda installation with conda-forge<a class="headerlink" href="#anaconda-installation-with-conda-forge" title="Permalink to this headline"></a></h2> <p>If you use the Anaconda python distribution, POT is available in <a class="reference external" href="https://conda-forge.org">conda-forge</a>. To install it and the required dependencies:</p> <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">conda install -c conda-forge pot</span> </pre></div> </div> </section> <section id="post-installation-check"> <h2>Post installation check<a class="headerlink" href="#post-installation-check" title="Permalink to this headline"></a></h2> <p>After a correct installation, you should be able to import the module without errors:</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">ot</span> </pre></div> </div> <p>Note that for easier access the module is named <code class="docutils literal notranslate"><span class="pre">ot</span></code> instead of <code class="docutils literal notranslate"><span class="pre">pot</span></code>.</p> <p>Some sub-modules require additional dependences which are discussed below</p> <ul class="simple"> <li><p><strong>ot.dr</strong> (Wasserstein dimensionality reduction) depends on autograd and pymanopt that can be installed with:</p></li> </ul> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>pip install pymanopt autograd </pre></div> </div> <ul class="simple"> <li><p><strong>ot.gpu</strong> (GPU accelerated OT) depends on cupy that have to be installed following instructions on <a class="reference external" href="https://docs-cupy.chainer.org/en/stable/install.html">this page</a>. Obviously you will need CUDA installed and a compatible GPU. Note that this module is deprecated since version 0.8 and will be deleted in the future. GPU is now handled automatically through the backends and several solver already can run on GPU using the Pytorch backend.</p></li> </ul> <section id="examples"> <h3>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h3> <section id="short-examples"> <h4>Short examples<a class="headerlink" href="#short-examples" title="Permalink to this headline"></a></h4> <ul class="simple"> <li><p>Import the toolbox</p></li> </ul> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">ot</span> </pre></div> </div> <ul class="simple"> <li><p>Compute Wasserstein distances</p></li> </ul> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># a,b are 1D histograms (sum to 1 and positive)</span> <span class="c1"># M is the ground cost matrix</span> <span class="n">Wd</span> <span class="o">=</span> <span class="n">ot</span><span class="o">.</span><span class="n">emd2</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">M</span><span class="p">)</span> <span class="c1"># exact linear program</span> <span class="n">Wd_reg</span> <span class="o">=</span> <span class="n">ot</span><span class="o">.</span><span class="n">sinkhorn2</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">M</span><span class="p">,</span> <span class="n">reg</span><span class="p">)</span> <span class="c1"># entropic regularized OT</span> <span class="c1"># if b is a matrix compute all distances to a and return a vector</span> </pre></div> </div> <ul class="simple"> <li><p>Compute OT matrix</p></li> </ul> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># a,b are 1D histograms (sum to 1 and positive)</span> <span class="c1"># M is the ground cost matrix</span> <span class="n">T</span> <span class="o">=</span> <span class="n">ot</span><span class="o">.</span><span class="n">emd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">M</span><span class="p">)</span> <span class="c1"># exact linear program</span> <span class="n">T_reg</span> <span class="o">=</span> <span class="n">ot</span><span class="o">.</span><span class="n">sinkhorn</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">M</span><span class="p">,</span> <span class="n">reg</span><span class="p">)</span> <span class="c1"># entropic regularized OT</span> </pre></div> </div> <ul class="simple"> <li><p>Compute Wasserstein barycenter</p></li> </ul> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># A is a n*d matrix containing d 1D histograms</span> <span class="c1"># M is the ground cost matrix</span> <span class="n">ba</span> <span class="o">=</span> <span class="n">ot</span><span class="o">.</span><span class="n">barycenter</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="n">M</span><span class="p">,</span> <span class="n">reg</span><span class="p">)</span> <span class="c1"># reg is regularization parameter</span> </pre></div> </div> </section> <section id="examples-and-notebooks"> <h4>Examples and Notebooks<a class="headerlink" href="#examples-and-notebooks" title="Permalink to this headline"></a></h4> <p>The examples folder contain several examples and use case for the library. The full documentation with examples and output is available on <a class="reference external" href="https://PythonOT.github.io/">https://PythonOT.github.io/</a>.</p> </section> </section> <section id="acknowledgements"> <h3>Acknowledgements<a class="headerlink" href="#acknowledgements" title="Permalink to this headline"></a></h3> <p>This toolbox has been created and is maintained by</p> <ul class="simple"> <li><p><a class="reference external" href="http://remi.flamary.com/">Rémi Flamary</a></p></li> <li><p><a class="reference external" href="http://people.irisa.fr/Nicolas.Courty/">Nicolas Courty</a></p></li> </ul> <p>The contributors to this library are</p> <ul class="simple"> <li><p><a class="reference external" href="http://alexandre.gramfort.net/">Alexandre Gramfort</a> (CI, documentation)</p></li> <li><p><a class="reference external" href="http://people.irisa.fr/Laetitia.Chapel/">Laetitia Chapel</a> (Partial OT)</p></li> <li><p><a class="reference external" href="http://perso.univ-st-etienne.fr/pem82055/">Michael Perrot</a> (Mapping estimation)</p></li> <li><p><a class="reference external" href="https://github.com/aje">Léo Gautheron</a> (GPU implementation)</p></li> <li><p><a class="reference external" href="https://www.linkedin.com/in/nathalie-t-h-gayraud/?ppe=1">Nathalie Gayraud</a> (DA classes)</p></li> <li><p><a class="reference external" href="https://slasnista.github.io/">Stanislas Chambon</a> (DA classes)</p></li> <li><p><a class="reference external" href="https://arolet.github.io/">Antoine Rolet</a> (EMD solver debug)</p></li> <li><p>Erwan Vautier (Gromov-Wasserstein)</p></li> <li><p><a class="reference external" href="https://kilianfatras.github.io/">Kilian Fatras</a> (Stochastic solvers)</p></li> <li><p><a class="reference external" href="https://sites.google.com/site/alainrakotomamonjy/home">Alain Rakotomamonjy</a></p></li> <li><p><a class="reference external" href="https://tvayer.github.io/">Vayer Titouan</a> (Gromov-Wasserstein -, Fused-Gromov-Wasserstein)</p></li> <li><p><a class="reference external" href="https://hichamjanati.github.io/">Hicham Janati</a> (Unbalanced OT, Debiased barycenters)</p></li> <li><p><a class="reference external" href="https://rtavenar.github.io/">Romain Tavenard</a> (1d Wasserstein)</p></li> <li><p><a class="reference external" href="http://mzalaya.github.io/">Mokhtar Z. Alaya</a> (Screenkhorn)</p></li> <li><p><a class="reference external" href="https://ievred.github.io/">Ievgen Redko</a> (Laplacian DA, JCPOT)</p></li> <li><p><a class="reference external" href="https://adriencorenflos.github.io/">Adrien Corenflos</a> (Sliced Wasserstein Distance)</p></li> <li><p><a class="reference external" href="https://hv0nnus.github.io/">Tanguy Kerdoncuff</a> (Sampled Gromov Wasserstein)</p></li> <li><p><a class="reference external" href="https://mhhuang95.github.io">Minhui Huang</a> (Projection Robust Wasserstein Distance)</p></li> </ul> <p>This toolbox benefit a lot from open source research and we would like to thank the following persons for providing some code (in various languages):</p> <ul class="simple"> <li><p><a class="reference external" href="http://gpeyre.github.io/">Gabriel Peyré</a> (Wasserstein Barycenters in Matlab)</p></li> <li><p><a class="reference external" href="https://mblondel.org/">Mathieu Blondel</a> (original implementation smooth OT)</p></li> <li><p><a class="reference external" href="http://liris.cnrs.fr/~nbonneel/">Nicolas Bonneel</a> ( C++ code for EMD)</p></li> <li><p><a class="reference external" href="http://marcocuturi.net/">Marco Cuturi</a> (Sinkhorn Knopp in Matlab/Cuda)</p></li> </ul> </section> <section id="contributions-and-code-of-conduct"> <h3>Contributions and code of conduct<a class="headerlink" href="#contributions-and-code-of-conduct" title="Permalink to this headline"></a></h3> <p>Every contribution is welcome and should respect the <a class="reference external" href=".github/CONTRIBUTING.md">contribution guidelines</a>. Each member of the project is expected to follow the <a class="reference external" href=".github/CODE_OF_CONDUCT.md">code of conduct</a>.</p> </section> <section id="support"> <h3>Support<a class="headerlink" href="#support" title="Permalink to this headline"></a></h3> <p>You can ask questions and join the development discussion:</p> <ul class="simple"> <li><p>On the POT <a class="reference external" href="https://pot-toolbox.slack.com">slack channel</a></p></li> <li><p>On the POT <a class="reference external" href="https://gitter.im/PythonOT/community">gitter channel</a></p></li> <li><p>On the POT <a class="reference external" href="https://mail.python.org/mm3/mailman3/lists/pot.python.org/">mailing list</a></p></li> </ul> <p>You can also post bug reports and feature requests in Github issues. Make sure to read our <a class="reference external" href=".github/CONTRIBUTING.md">guidelines</a> first.</p> </section> <section id="references"> <h3>References<a class="headerlink" href="#references" title="Permalink to this headline"></a></h3> <p>[1] Bonneel, N., Van De Panne, M., Paris, S., & Heidrich, W. (2011, December). <a class="reference external" href="https://people.csail.mit.edu/sparis/publi/2011/sigasia/Bonneel_11_Displacement_Interpolation.pdf">Displacement interpolation using Lagrangian mass transport</a>. In ACM Transactions on Graphics (TOG) (Vol. 30, No. 6, p. 158). ACM.</p> <p>[2] Cuturi, M. (2013). <a class="reference external" href="https://arxiv.org/pdf/1306.0895.pdf">Sinkhorn distances: Lightspeed computation of optimal transport</a>. In Advances in Neural Information Processing Systems (pp. 2292-2300).</p> <p>[3] Benamou, J. D., Carlier, G., Cuturi, M., Nenna, L., & Peyré, G. (2015). <a class="reference external" href="https://arxiv.org/pdf/1412.5154.pdf">Iterative Bregman projections for regularized transportation problems</a>. SIAM Journal on Scientific Computing, 37(2), A1111-A1138.</p> <p>[4] S. Nakhostin, N. Courty, R. Flamary, D. Tuia, T. Corpetti, <a class="reference external" href="https://hal.archives-ouvertes.fr/hal-01377236/document">Supervised planetary unmixing with optimal transport</a>, Whorkshop on Hyperspectral Image and Signal Processing : Evolution in Remote Sensing (WHISPERS), 2016.</p> <p>[5] N. Courty; R. Flamary; D. Tuia; A. Rakotomamonjy, <a class="reference external" href="https://arxiv.org/pdf/1507.00504.pdf">Optimal Transport for Domain Adaptation</a>, in IEEE Transactions on Pattern Analysis and Machine Intelligence , vol.PP, no.99, pp.1-1</p> <p>[6] Ferradans, S., Papadakis, N., Peyré, G., & Aujol, J. F. (2014). <a class="reference external" href="https://arxiv.org/pdf/1307.5551.pdf">Regularized discrete optimal transport</a>. SIAM Journal on Imaging Sciences, 7(3), 1853-1882.</p> <p>[7] Rakotomamonjy, A., Flamary, R., & Courty, N. (2015). <a class="reference external" href="https://arxiv.org/pdf/1510.06567.pdf">Generalized conditional gradient: analysis of convergence and applications</a>. arXiv preprint arXiv:1510.06567.</p> <p>[8] M. Perrot, N. Courty, R. Flamary, A. Habrard (2016), <a class="reference external" href="http://remi.flamary.com/biblio/perrot2016mapping.pdf">Mapping estimation for discrete optimal transport</a>, Neural Information Processing Systems (NIPS).</p> <p>[9] Schmitzer, B. (2016). <a class="reference external" href="https://arxiv.org/pdf/1610.06519.pdf">Stabilized Sparse Scaling Algorithms for Entropy Regularized Transport Problems</a>. arXiv preprint arXiv:1610.06519.</p> <p>[10] Chizat, L., Peyré, G., Schmitzer, B., & Vialard, F. X. (2016). <a class="reference external" href="https://arxiv.org/pdf/1607.05816.pdf">Scaling algorithms for unbalanced transport problems</a>. arXiv preprint arXiv:1607.05816.</p> <p>[11] Flamary, R., Cuturi, M., Courty, N., & Rakotomamonjy, A. (2016). <a class="reference external" href="https://arxiv.org/pdf/1608.08063.pdf">Wasserstein Discriminant Analysis</a>. arXiv preprint arXiv:1608.08063.</p> <p>[12] Gabriel Peyré, Marco Cuturi, and Justin Solomon (2016), <a class="reference external" href="http://proceedings.mlr.press/v48/peyre16.html">Gromov-Wasserstein averaging of kernel and distance matrices</a> International Conference on Machine Learning (ICML).</p> <p>[13] Mémoli, Facundo (2011). <a class="reference external" href="https://media.adelaide.edu.au/acvt/Publications/2011/2011-Gromov%E2%80%93Wasserstein%20Distances%20and%20the%20Metric%20Approach%20to%20Object%20Matching.pdf">Gromov–Wasserstein distances and the metric approach to object matching</a>. Foundations of computational mathematics 11.4 : 417-487.</p> <p>[14] Knott, M. and Smith, C. S. (1984).`On the optimal mapping of distributions <<a class="reference external" href="https://link.springer.com/article/10.1007/BF00934745">https://link.springer.com/article/10.1007/BF00934745</a>>`__, Journal of Optimization Theory and Applications Vol 43.</p> <p>[15] Peyré, G., & Cuturi, M. (2018). <a class="reference external" href="https://arxiv.org/pdf/1803.00567.pdf">Computational Optimal Transport</a> .</p> <p>[16] Agueh, M., & Carlier, G. (2011). <a class="reference external" href="https://hal.archives-ouvertes.fr/hal-00637399/document">Barycenters in the Wasserstein space</a>. SIAM Journal on Mathematical Analysis, 43(2), 904-924.</p> <p>[17] Blondel, M., Seguy, V., & Rolet, A. (2018). <a class="reference external" href="https://arxiv.org/abs/1710.06276">Smooth and Sparse Optimal Transport</a>. Proceedings of the Twenty-First International Conference on Artificial Intelligence and Statistics (AISTATS).</p> <p>[18] Genevay, A., Cuturi, M., Peyré, G. & Bach, F. (2016) <a class="reference external" href="https://arxiv.org/abs/1605.08527">Stochastic Optimization for Large-scale Optimal Transport</a>. Advances in Neural Information Processing Systems (2016).</p> <p>[19] Seguy, V., Bhushan Damodaran, B., Flamary, R., Courty, N., Rolet, A.& Blondel, M. <a class="reference external" href="https://arxiv.org/pdf/1711.02283.pdf">Large-scale Optimal Transport and Mapping Estimation</a>. International Conference on Learning Representation (2018)</p> <p>[20] Cuturi, M. and Doucet, A. (2014) <a class="reference external" href="http://proceedings.mlr.press/v32/cuturi14.html">Fast Computation of Wasserstein Barycenters</a>. International Conference in Machine Learning</p> <p>[21] Solomon, J., De Goes, F., Peyré, G., Cuturi, M., Butscher, A., Nguyen, A. & Guibas, L. (2015). <a class="reference external" href="https://dl.acm.org/citation.cfm?id=2766963">Convolutional wasserstein distances: Efficient optimal transportation on geometric domains</a>. ACM Transactions on Graphics (TOG), 34(4), 66.</p> <p>[22] J. Altschuler, J.Weed, P. Rigollet, (2017) <a class="reference external" href="https://papers.nips.cc/paper/6792-near-linear-time-approximation-algorithms-for-optimal-transport-via-sinkhorn-iteration.pdf">Near-linear time approximation algorithms for optimal transport via Sinkhorn iteration</a>, Advances in Neural Information Processing Systems (NIPS) 31</p> <p>[23] Aude, G., Peyré, G., Cuturi, M., <a class="reference external" href="https://arxiv.org/abs/1706.00292">Learning Generative Models with Sinkhorn Divergences</a>, Proceedings of the Twenty-First International Conference on Artficial Intelligence and Statistics, (AISTATS) 21, 2018</p> <p>[24] Vayer, T., Chapel, L., Flamary, R., Tavenard, R. and Courty, N. (2019). <a class="reference external" href="http://proceedings.mlr.press/v97/titouan19a.html">Optimal Transport for structured data with application on graphs</a> Proceedings of the 36th International Conference on Machine Learning (ICML).</p> <p>[25] Frogner C., Zhang C., Mobahi H., Araya-Polo M., Poggio T. (2015). <a class="reference external" href="http://cbcl.mit.edu/wasserstein/">Learning with a Wasserstein Loss</a> Advances in Neural Information Processing Systems (NIPS).</p> <p>[26] Alaya M. Z., Bérar M., Gasso G., Rakotomamonjy A. (2019). <a class="reference external" href="https://papers.nips.cc/paper/9386-screening-sinkhorn-algorithm-for-regularized-optimal-transport">Screening Sinkhorn Algorithm for Regularized Optimal Transport</a>, Advances in Neural Information Processing Systems 33 (NeurIPS).</p> <p>[27] Redko I., Courty N., Flamary R., Tuia D. (2019). <a class="reference external" href="http://proceedings.mlr.press/v89/redko19a.html">Optimal Transport for Multi-source Domain Adaptation under Target Shift</a>, Proceedings of the Twenty-Second International Conference on Artificial Intelligence and Statistics (AISTATS) 22, 2019.</p> <p>[28] Caffarelli, L. A., McCann, R. J. (2010). <a class="reference external" href="http://www.math.toronto.edu/~mccann/papers/annals2010.pdf">Free boundaries in optimal transport and Monge-Ampere obstacle problems</a>, Annals of mathematics, 673-730.</p> <p>[29] Chapel, L., Alaya, M., Gasso, G. (2020). <a class="reference external" href="https://arxiv.org/abs/2002.08276">Partial Optimal Transport with Applications on Positive-Unlabeled Learning</a>, Advances in Neural Information Processing Systems (NeurIPS), 2020.</p> <p>[30] Flamary R., Courty N., Tuia D., Rakotomamonjy A. (2014). <a class="reference external" href="https://remi.flamary.com/biblio/flamary2014optlaplace.pdf">Optimal transport with Laplacian regularization: Applications to domain adaptation and shape matching</a>, NIPS Workshop on Optimal Transport and Machine Learning OTML, 2014.</p> <p>[31] Bonneel, Nicolas, et al. <a class="reference external" href="https://perso.liris.cnrs.fr/nicolas.bonneel/WassersteinSliced-JMIV.pdf">Sliced and radon wasserstein barycenters of measures</a>, Journal of Mathematical Imaging and Vision 51.1 (2015): 22-45</p> <p>[32] Huang, M., Ma S., Lai, L. (2021). <a class="reference external" href="http://proceedings.mlr.press/v139/huang21e.html">A Riemannian Block Coordinate Descent Method for Computing the Projection Robust Wasserstein Distance</a>, Proceedings of the 38th International Conference on Machine Learning (ICML).</p> <p>[33] Kerdoncuff T., Emonet R., Marc S. <a class="reference external" href="https://hal.archives-ouvertes.fr/hal-03232509/document">Sampled Gromov Wasserstein</a>, Machine Learning Journal (MJL), 2021</p> <p>[34] Feydy, J., Séjourné, T., Vialard, F. X., Amari, S. I., Trouvé, A., & Peyré, G. (2019, April). <a class="reference external" href="http://proceedings.mlr.press/v89/feydy19a/feydy19a.pdf">Interpolating between optimal transport and MMD using Sinkhorn divergences</a>. In The 22nd International Conference on Artificial Intelligence and Statistics (pp. 2681-2690). PMLR.</p> <p>[35] Deshpande, I., Hu, Y. T., Sun, R., Pyrros, A., Siddiqui, N., Koyejo, S., … & Schwing, A. G. (2019). <a class="reference external" href="https://openaccess.thecvf.com/content_CVPR_2019/papers/Deshpande_Max-Sliced_Wasserstein_Distance_and_Its_Use_for_GANs_CVPR_2019_paper.pdf">Max-sliced wasserstein distance and its use for gans</a>. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 10648-10656).</p> <p>[36] Liutkus, A., Simsekli, U., Majewski, S., Durmus, A., & Stöter, F. R. (2019, May). <a class="reference external" href="http://proceedings.mlr.press/v97/liutkus19a/liutkus19a.pdf">Sliced-Wasserstein flows: Nonparametric generative modeling via optimal transport and diffusions</a>. In International Conference on Machine Learning (pp. 4104-4113). PMLR.</p> <p>[37] Janati, H., Cuturi, M., Gramfort, A. <a class="reference external" href="http://proceedings.mlr.press/v119/janati20a/janati20a.pdf">Debiased sinkhorn barycenters</a> Proceedings of the 37th International Conference on Machine Learning, PMLR 119:4692-4701, 2020</p> <p>[38] C. Vincent-Cuaz, T. Vayer, R. Flamary, M. Corneli, N. Courty, <a class="reference external" href="https://arxiv.org/pdf/2102.06555.pdf">Online Graph Dictionary Learning</a>, International Conference on Machine Learning (ICML), 2021.</p> </section> </section> </section> </div> </div> <footer> <hr/> <div role="contentinfo"> <p>© Copyright 2016-2021, Rémi Flamary, Nicolas Courty.</p> </div> Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. </footer> </div> </div> </section> </div> <div class="rst-versions shift-up" data-toggle="rst-versions" role="note" aria-label="versions"> <span class="rst-current-version" data-toggle="rst-current-version"> <span class="fa fa-book"> Python Optimal Transport</span> versions <span class="fa fa-caret-down"></span> </span> <div class="rst-other-versions"><!-- Inserted RTD Footer --> <div class="injected"> <dl> <dt>Versions</dt> <dd><a href="https://pythonot.github.io/master">latest</a></dd> <dd><a href="https://pythonot.github.io/">stable</a></dd> </dl> <dl> <dt>On GitHub</dt> <dd> <a href="https://github.com/PythonOT/POT">Code on Github</a> </dd> </dl> <hr> </div> </div> </div><script> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> </body> </html>