Skip to content

Commit e7e485a

Browse files
authored
Merge pull request #156 from PythonOT/rm_notebooks
[WIP] Remove notebooks from repo and cleanup doc/readme
2 parents 5f67924 + 8fd50a7 commit e7e485a

32 files changed

+143
-9874
lines changed

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ release_test :
5858

5959
rdoc :
6060
pandoc --from=markdown --to=rst --output=docs/source/readme.rst README.md
61+
sed -i 's,https://pythonot.github.io/auto_examples/,auto_examples/,g' docs/source/readme.rst
6162

6263
notebook :
6364
ipython notebook --matplotlib=inline --notebook-dir=notebooks/

README.md

Lines changed: 44 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -16,36 +16,51 @@ learning.
1616

1717
Website and documentation: [https://PythonOT.github.io/](https://PythonOT.github.io/)
1818

19-
POT provides the following solvers:
19+
Source Code (MIT): [https://github.com/PythonOT/POT](https://github.com/PythonOT/POT)
2020

21-
* OT Network Flow solver for the linear program/ Earth Movers Distance [1].
22-
* Entropic regularization OT solver with Sinkhorn Knopp Algorithm [2], stabilized version [9][10] and greedy Sinkhorn [22] with optional GPU implementation (requires cupy).
21+
POT provides the following generic OT solvers (links to examples):
22+
23+
* [OT Network Simplex solver](https://pythonot.github.io/auto_examples/plot_OT_1D.html) for the linear program/ Earth Movers Distance [1] .
24+
* [Conditional gradient](https://pythonot.github.io/auto_examples/plot_optim_OTreg.html) [6] and [Generalized conditional gradient](https://pythonot.github.io/auto_examples/plot_optim_OTreg.html) for regularized OT [7].
25+
* Entropic regularization OT solver with [Sinkhorn Knopp Algorithm](https://pythonot.github.io/auto_examples/plot_OT_1D.html) [2] , stabilized version [9] [10], greedy Sinkhorn [22] and [Screening Sinkhorn [26] ](https://pythonot.github.io/auto_examples/plot_screenkhorn_1D.html) with optional GPU implementation (requires cupy).
26+
* Bregman projections for [Wasserstein barycenter](https://pythonot.github.io/auto_examples/plot_barycenter_lp_vs_entropic.html) [3], [convolutional barycenter](https://pythonot.github.io/auto_examples/plot_convolutional_barycenter.html) [21] and unmixing [4].
2327
* Sinkhorn divergence [23] and entropic regularization OT from empirical data.
24-
* Smooth optimal transport solvers (dual and semi-dual) for KL and squared L2 regularizations [17].
25-
* Non regularized Wasserstein barycenters [16] with LP solver (only small scale).
26-
* Bregman projections for Wasserstein barycenter [3], convolutional barycenter [21] and unmixing [4].
27-
* Optimal transport for domain adaptation with group lasso regularization and Laplacian regularization [5][30]
28-
* Conditional gradient [6] and Generalized conditional gradient for regularized OT [7].
29-
* Linear OT [14] and Joint OT matrix and mapping estimation [8].
30-
* Wasserstein Discriminant Analysis [11] (requires autograd + pymanopt).
31-
* Gromov-Wasserstein distances and barycenters ([13] and regularized [12])
32-
* Stochastic Optimization for Large-scale Optimal Transport (semi-dual problem [18] and dual problem [19])
33-
* Non regularized free support Wasserstein barycenters [20].
34-
* Unbalanced OT with KL relaxation distance and barycenter [10, 25].
35-
* Screening Sinkhorn Algorithm for OT [26].
36-
* JCPOT algorithm for multi-source domain adaptation with target shift [27].
37-
* Partial Wasserstein and Gromov-Wasserstein (exact [29] and entropic [3] formulations).
38-
39-
Some demonstrations (both in Python and Jupyter Notebook format) are available in the examples folder.
28+
* [Smooth optimal transport solvers](https://pythonot.github.io/auto_examples/plot_OT_1D_smooth.html) (dual and semi-dual) for KL and squared L2 regularizations [17].
29+
* Non regularized [Wasserstein barycenters [16] ](https://pythonot.github.io/auto_examples/plot_barycenter_lp_vs_entropic.html)) with LP solver (only small scale).
30+
* [Gromov-Wasserstein distances](https://pythonot.github.io/auto_examples/plot_gromov.html) and [GW barycenters](https://pythonot.github.io/auto_examples/plot_gromov_barycenter.html) (exact [13] and regularized [12])
31+
* [Fused-Gromov-Wasserstein distances solver](https://pythonot.github.io/auto_examples/plot_fgw.html#sphx-glr-auto-examples-plot-fgw-py) and [FGW barycenters](https://pythonot.github.io/auto_examples/plot_barycenter_fgw.html) [24]
32+
* [Stochastic solver](https://pythonot.github.io/auto_examples/plot_stochastic.html) for Large-scale Optimal Transport (semi-dual problem [18] and dual problem [19])
33+
* Non regularized [free support Wasserstein barycenters](https://pythonot.github.io/auto_examples/plot_free_support_barycenter.html) [20].
34+
* [Unbalanced OT](https://pythonot.github.io/auto_examples/plot_UOT_1D.html) with KL relaxation and [barycenter](https://pythonot.github.io/auto_examples/plot_UOT_barycenter_1D.html) [10, 25].
35+
* [Partial Wasserstein and Gromov-Wasserstein](https://pythonot.github.io/auto_examples/plot_partial_wass_and_gromov.html) (exact [29] and entropic [3]
36+
formulations).
37+
38+
POT provides the following Machine Learning related solvers:
39+
40+
* [Optimal transport for domain
41+
adaptation](https://pythonot.github.io/auto_examples/plot_otda_classes.html)
42+
with [group lasso regularization](https://pythonot.github.io/auto_examples/plot_otda_classes.html), [Laplacian regularization](https://pythonot.github.io/auto_examples/plot_otda_laplacian.html) [5] [30] and [semi
43+
supervised setting](https://pythonot.github.io/auto_examples/plot_otda_semi_supervised.html).
44+
* [Linear OT mapping](https://pythonot.github.io/auto_examples/plot_otda_linear_mapping.html) [14] and [Joint OT mapping estimation](https://pythonot.github.io/auto_examples/plot_otda_mapping.html) [8].
45+
* [Wasserstein Discriminant Analysis](https://pythonot.github.io/auto_examples/plot_WDA.html) [11] (requires autograd + pymanopt).
46+
* [JCPOT algorithm for multi-source domain adaptation with target shift](https://pythonot.github.io/auto_examples/plot_otda_jcpot.html) [27].
47+
48+
Some demonstrations are available in the [documentation](https://pythonot.github.io/auto_examples/index.html).
4049

4150
#### Using and citing the toolbox
4251

43-
If you use this toolbox in your research and find it useful, please cite POT using the following bibtex reference:
52+
If you use this toolbox in your research and find it useful, please cite POT
53+
using the following bibtex reference:
54+
```
55+
Rémi Flamary and Nicolas Courty, POT Python Optimal Transport library, Website: https://pythonot.github.io/, 2017
56+
```
57+
58+
In Bibtex format:
4459
```
4560
@misc{flamary2017pot,
4661
title={POT Python Optimal Transport library},
4762
author={Flamary, R{'e}mi and Courty, Nicolas},
48-
url={https://github.com/rflamary/POT},
63+
url={https://pythonot.github.io/},
4964
year={2017}
5065
}
5166
```
@@ -136,35 +151,11 @@ T_reg=ot.sinkhorn(a,b,M,reg) # entropic regularized OT
136151
ba=ot.barycenter(A,M,reg) # reg is regularization parameter
137152
```
138153

139-
140-
141-
142154
### Examples and Notebooks
143155

144156
The examples folder contain several examples and use case for the library. The full documentation is available on [https://PythonOT.github.io/](https://PythonOT.github.io/).
145157

146158

147-
Here is a list of the Python notebooks available [here](https://github.com/PythonOT/POT/blob/master/notebooks/) if you want a quick look:
148-
149-
* [1D optimal transport](https://github.com/PythonOT/POT/blob/master/notebooks/plot_OT_1D.ipynb)
150-
* [OT Ground Loss](https://github.com/PythonOT/POT/blob/master/notebooks/plot_OT_L1_vs_L2.ipynb)
151-
* [Multiple EMD computation](https://github.com/PythonOT/POT/blob/master/notebooks/plot_compute_emd.ipynb)
152-
* [2D optimal transport on empirical distributions](https://github.com/PythonOT/POT/blob/master/notebooks/plot_OT_2D_samples.ipynb)
153-
* [1D Wasserstein barycenter](https://github.com/PythonOT/POT/blob/master/notebooks/plot_barycenter_1D.ipynb)
154-
* [OT with user provided regularization](https://github.com/PythonOT/POT/blob/master/notebooks/plot_optim_OTreg.ipynb)
155-
* [Domain adaptation with optimal transport](https://github.com/PythonOT/POT/blob/master/notebooks/plot_otda_d2.ipynb)
156-
* [Color transfer in images](https://github.com/PythonOT/POT/blob/master/notebooks/plot_otda_color_images.ipynb)
157-
* [OT mapping estimation for domain adaptation](https://github.com/PythonOT/POT/blob/master/notebooks/plot_otda_mapping.ipynb)
158-
* [OT mapping estimation for color transfer in images](https://github.com/PythonOT/POT/blob/master/notebooks/plot_otda_mapping_colors_images.ipynb)
159-
* [Wasserstein Discriminant Analysis](https://github.com/PythonOT/POT/blob/master/notebooks/plot_WDA.ipynb)
160-
* [Gromov Wasserstein](https://github.com/PythonOT/POT/blob/master/notebooks/plot_gromov.ipynb)
161-
* [Gromov Wasserstein Barycenter](https://github.com/PythonOT/POT/blob/master/notebooks/plot_gromov_barycenter.ipynb)
162-
* [Fused Gromov Wasserstein](https://github.com/PythonOT/POT/blob/master/notebooks/plot_fgw.ipynb)
163-
* [Fused Gromov Wasserstein Barycenter](https://github.com/PythonOT/POT/blob/master/notebooks/plot_barycenter_fgw.ipynb)
164-
165-
166-
You can also see the notebooks with [Jupyter nbviewer](https://nbviewer.jupyter.org/github/PythonOT/POT/tree/master/notebooks/).
167-
168159
## Acknowledgements
169160

170161
This toolbox has been created and is maintained by
@@ -174,21 +165,21 @@ This toolbox has been created and is maintained by
174165

175166
The contributors to this library are
176167

177-
* [Alexandre Gramfort](http://alexandre.gramfort.net/)
178-
* [Laetitia Chapel](http://people.irisa.fr/Laetitia.Chapel/)
168+
* [Alexandre Gramfort](http://alexandre.gramfort.net/) (CI)
169+
* [Laetitia Chapel](http://people.irisa.fr/Laetitia.Chapel/) (Partial OT)
179170
* [Michael Perrot](http://perso.univ-st-etienne.fr/pem82055/) (Mapping estimation)
180171
* [Léo Gautheron](https://github.com/aje) (GPU implementation)
181-
* [Nathalie Gayraud](https://www.linkedin.com/in/nathalie-t-h-gayraud/?ppe=1)
182-
* [Stanislas Chambon](https://slasnista.github.io/)
183-
* [Antoine Rolet](https://arolet.github.io/)
172+
* [Nathalie Gayraud](https://www.linkedin.com/in/nathalie-t-h-gayraud/?ppe=1) (DA classes)
173+
* [Stanislas Chambon](https://slasnista.github.io/) (DA classes)
174+
* [Antoine Rolet](https://arolet.github.io/) (EMD solver debug)
184175
* Erwan Vautier (Gromov-Wasserstein)
185-
* [Kilian Fatras](https://kilianfatras.github.io/)
176+
* [Kilian Fatras](https://kilianfatras.github.io/) (Stochastic solvers)
186177
* [Alain Rakotomamonjy](https://sites.google.com/site/alainrakotomamonjy/home)
187-
* [Vayer Titouan](https://tvayer.github.io/)
178+
* [Vayer Titouan](https://tvayer.github.io/) (Gromov-Wasserstein -, Fused-Gromov-Wasserstein)
188179
* [Hicham Janati](https://hichamjanati.github.io/) (Unbalanced OT)
189180
* [Romain Tavenard](https://rtavenar.github.io/) (1d Wasserstein)
190181
* [Mokhtar Z. Alaya](http://mzalaya.github.io/) (Screenkhorn)
191-
* [Ievgen Redko](https://ievred.github.io/)
182+
* [Ievgen Redko](https://ievred.github.io/) (Laplacian DA, JCPOT)
192183

193184
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):
194185

0 commit comments

Comments
 (0)