Implementation of Low Rank Gromov-Wasserstein by laudavid · Pull Request #614 · PythonOT/POT

Types of changes

This PR is for the implementation of the Low Rank Gromov-Wasserstein solver.

Paper reference:
Scetbon, M., Peyré, G. & Cuturi, M. (2022).
"Linear-Time GromovWasserstein Distances using Low Rank Couplings and Costs".
In International Conference on Machine Learning (ICML), 2022.

Changes made:

  • Created the lowrank_gromov_wasserstein function in ot/lowrank.py
  • Created the _flat_product_operator function in ot/lowrank.py since it is needed for the low rank GW solver
  • Added tests for each new functions in test\lowrank.py
  • Added the lowrank_gromov_wasserstein solver in __init__.py
  • Added the paper reference in READ.me
  • Created an example for Low Rank GW (plot_lowrank_GW.py) in examples/others

Motivation and context / Related issue

Adding a new low rank solver for gromov-wasserstein.
No existing issue is linked to this PR.

How has this been tested (if it applies)

Tests for each function are available in test_lowrank.py.
The Low Rank GW solver has also been tested by reproducing Figure 2 from the paper.

PR checklist

  • I have read the CONTRIBUTING document.
  • The documentation is up-to-date with the changes I made (check build artifacts).
  • All tests passed, and additional code has been covered with new tests.
  • I have added the PR and Issue fix to the RELEASES.md file.