Rémi Flamary

Professional website

Optimal Transport for Machine Learning tutorial

This is the page for the tutorial about Optimal Transport for Machine Learning.


  • Introduction to Optimal Transport [PDF]
    • Optimal transport problem
    • Wasserstein distance and geometry
    • Computational aspects and regularized OT
  • Learning with optimal transport [PDF]
    • Mapping with Optimal Transport
    • Learning from histograms with Wasserstein distance
    • Learning from empirical distributions with Wasserstein distance

The course has been prepared by Rémi Flamary and Nicolas Courty.

Older iterations of the tutorial

Practical Sessions

The following proactical sessisons have been proposed for the Data Science Summer School 2018. The github repository for the files is available here: [OTML_DS3_2018].

You can download the introductory slides to the practical session here.

Install Python and POT Toolbox

In order to do the practical sessions you need to have a working Python installation. The simplest way on any OS is to install the Anaconda distribution that can be freely downloaded from here.

When anaconda is installed the simplest way to install pot is to launch the anaconda terminal and execute:

conda install -c conda-forge pot

which will install the POT OT Toolbox automatically. Note that in Window you need to launch the anaconda terminal with admnistrator mode to install with conda.

The optional practical session 3 also requires the use of the Keras toolbox that can be installed similarly with:

conda install -c conda-forge keras

Download the Notebooks for the session

You can download all the necessary files here: OTML_DS3_2018.zip

The zip file contains the following session:

  1. Introduction to OT with POT
  2. Domain adaptation on digits with OT
  3. Color Grading with OT
  4. Wasserstein GAN in 2D (requires keras)
  5. Word Mover's Distance on text

You can choose to do the practical session using the notebooks included or the python script. We recommend Notebooks for beginners.

The solutions for the practical sessions can be obtained at the following URL:


Where [NUMBER] has to be replaced by the integer part of the value of the Wasserstein distance obtained in Practical Session 0 using the Manhattan/Cityblock ground metric.

Additional references