Skip to content

Commit eccb138

Browse files
authored
[MRG] Release 8.2 (#365)
* release text and number * add examples in release fil build wheels * switch gallery to release * add much needed contributors file * debug circleci * une line of logos * working logo * back to stable sphinx galery
1 parent 486b0d6 commit eccb138

File tree

12 files changed

+122
-48
lines changed

12 files changed

+122
-48
lines changed

.circleci/config.yml

+2-3
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,8 @@ jobs:
4848
python -m pip install --user -e .
4949
python -m pip install --user --upgrade --no-cache-dir --progress-bar off -r requirements.txt
5050
python -m pip install --user --upgrade --progress-bar off -r docs/requirements.txt
51-
python -m pip install --user --upgrade --progress-bar off ipython "https://api.github.com/repos/sphinx-gallery/sphinx-gallery/zipball/master" memory_profiler
52-
53-
51+
python -m pip install --user --upgrade --progress-bar off ipython sphinx-gallery memory_profiler
52+
# python -m pip install --user --upgrade --progress-bar off ipython "https://api.github.com/repos/sphinx-gallery/sphinx-gallery/zipball/master" memory_profiler
5453
- save_cache:
5554
key: pip-cache
5655
paths:

CONTRIBUTORS.md

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
2+
3+
## Creators and Maintainers
4+
5+
This toolbox has been created and is maintained by:
6+
7+
* [Rémi Flamary](http://remi.flamary.com/)
8+
* [Nicolas Courty](http://people.irisa.fr/Nicolas.Courty/)
9+
10+
## Contributors
11+
12+
The contributors to this library are:
13+
14+
* [Rémi Flamary](http://remi.flamary.com/) (EMD wrapper, Pytorch backend, DA
15+
classes, conditional gradients, WDA, weak OT, linear OT mapping, documentation)
16+
* [Nicolas Courty](http://people.irisa.fr/Nicolas.Courty/) (Original sinkhorn,
17+
Wasserstein barycenters and convolutional barycenters, 1D wasserstein)
18+
* [Alexandre Gramfort](http://alexandre.gramfort.net/) (CI, documentation)
19+
* [Laetitia Chapel](http://people.irisa.fr/Laetitia.Chapel/) (Partial OT,
20+
Unbalanced OT non-regularized)
21+
* [Michael Perrot](http://perso.univ-st-etienne.fr/pem82055/) (Mapping estimation)
22+
* [Léo Gautheron](https://github.com/aje) (Initial GPU implementation)
23+
* [Nathalie Gayraud](https://www.linkedin.com/in/nathalie-t-h-gayraud/?ppe=1) (DA classes)
24+
* [Stanislas Chambon](https://slasnista.github.io/) (DA classes)
25+
* [Antoine Rolet](https://arolet.github.io/) (EMD solver debug)
26+
* Erwan Vautier (Gromov-Wasserstein)
27+
* [Kilian Fatras](https://kilianfatras.github.io/) (Stochastic solvers,
28+
empirical sinkhorn)
29+
* [Alain Rakotomamonjy](https://sites.google.com/site/alainrakotomamonjy/home) (Greenkhorn)
30+
* [Vayer Titouan](https://tvayer.github.io/) (Gromov-Wasserstein, Fused-Gromov-Wasserstein)
31+
* [Hicham Janati](https://hichamjanati.github.io/) (Unbalanced OT, Debiased barycenters)
32+
* [Romain Tavenard](https://rtavenar.github.io/) (1D Wasserstein)
33+
* [Mokhtar Z. Alaya](http://mzalaya.github.io/) (Screenkhorn)
34+
* [Ievgen Redko](https://ievred.github.io/) (Laplacian DA, JCPOT)
35+
* [Adrien Corenflos](https://adriencorenflos.github.io/) (Sliced Wasserstein Distance)
36+
* [Tanguy Kerdoncuff](https://hv0nnus.github.io/) (Sampled Gromov Wasserstein)
37+
* [Minhui Huang](https://mhhuang95.github.io) (Projection Robust Wasserstein Distance)
38+
* [Nathan Cassereau](https://github.com/ncassereau-idris) (Backends)
39+
* [Cédric Vincent-Cuaz](https://github.com/cedricvincentcuaz) (Graph Dictionary Learning)
40+
41+
## Acknowledgments
42+
43+
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):
44+
45+
* [Gabriel Peyré](http://gpeyre.github.io/) (Wasserstein Barycenters in Matlab)
46+
* [Mathieu Blondel](https://mblondel.org/) (original implementation smooth OT)
47+
* [Nicolas Bonneel](http://liris.cnrs.fr/~nbonneel/) (C++ code for EMD)
48+
* [Marco Cuturi](http://marcocuturi.net/) (Sinkhorn Knopp in Matlab/Cuda)
49+
50+
POT has benefited from the financing or manpower from the following partners:
51+
52+
<img src="https://pythonot.github.io/master/_static/images/logo_anr.jpg" alt="ANR" style="height:60px;"/><img src="https://pythonot.github.io/master/_static/images/logo_cnrs.jpg" alt="CNRS" style="height:60px;"/><img src="https://pythonot.github.io/master/_static/images/logo_3ia.jpg" alt="3IA" style="height:60px;"/>

README.md

+6-29
Original file line numberDiff line numberDiff line change
@@ -180,35 +180,12 @@ This toolbox has been created and is maintained by
180180
* [Rémi Flamary](http://remi.flamary.com/)
181181
* [Nicolas Courty](http://people.irisa.fr/Nicolas.Courty/)
182182

183-
The contributors to this library are
184-
185-
* [Alexandre Gramfort](http://alexandre.gramfort.net/) (CI, documentation)
186-
* [Laetitia Chapel](http://people.irisa.fr/Laetitia.Chapel/) (Partial OT)
187-
* [Michael Perrot](http://perso.univ-st-etienne.fr/pem82055/) (Mapping estimation)
188-
* [Léo Gautheron](https://github.com/aje) (Initial GPU implementation)
189-
* [Nathalie Gayraud](https://www.linkedin.com/in/nathalie-t-h-gayraud/?ppe=1) (DA classes)
190-
* [Stanislas Chambon](https://slasnista.github.io/) (DA classes)
191-
* [Antoine Rolet](https://arolet.github.io/) (EMD solver debug)
192-
* Erwan Vautier (Gromov-Wasserstein)
193-
* [Kilian Fatras](https://kilianfatras.github.io/) (Stochastic solvers)
194-
* [Alain Rakotomamonjy](https://sites.google.com/site/alainrakotomamonjy/home)
195-
* [Vayer Titouan](https://tvayer.github.io/) (Gromov-Wasserstein -, Fused-Gromov-Wasserstein)
196-
* [Hicham Janati](https://hichamjanati.github.io/) (Unbalanced OT, Debiased barycenters)
197-
* [Romain Tavenard](https://rtavenar.github.io/) (1d Wasserstein)
198-
* [Mokhtar Z. Alaya](http://mzalaya.github.io/) (Screenkhorn)
199-
* [Ievgen Redko](https://ievred.github.io/) (Laplacian DA, JCPOT)
200-
* [Adrien Corenflos](https://adriencorenflos.github.io/) (Sliced Wasserstein Distance)
201-
* [Tanguy Kerdoncuff](https://hv0nnus.github.io/) (Sampled Gromov Wasserstein)
202-
* [Minhui Huang](https://mhhuang95.github.io) (Projection Robust Wasserstein Distance)
203-
* [Nathan Cassereau](https://github.com/ncassereau-idris) (Backends)
204-
* [Cédric Vincent-Cuaz](https://github.com/cedricvincentcuaz) (Graph Dictionary Learning)
205-
206-
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):
207-
208-
* [Gabriel Peyré](http://gpeyre.github.io/) (Wasserstein Barycenters in Matlab)
209-
* [Mathieu Blondel](https://mblondel.org/) (original implementation smooth OT)
210-
* [Nicolas Bonneel](http://liris.cnrs.fr/~nbonneel/) (C++ code for EMD)
211-
* [Marco Cuturi](http://marcocuturi.net/) (Sinkhorn Knopp in Matlab/Cuda)
183+
The numerous contributors to this library are listed [here](CONTRIBUTORS.md).
184+
185+
POT has benefited from the financing or manpower from the following partners:
186+
187+
<img src="https://pythonot.github.io/master/_static/images/logo_anr.jpg" alt="ANR" style="height:60px;"/><img src="https://pythonot.github.io/master/_static/images/logo_cnrs.jpg" alt="CNRS" style="height:60px;"/><img src="https://pythonot.github.io/master/_static/images/logo_3ia.jpg" alt="3IA" style="height:60px;"/>
188+
212189

213190
## Contributions and code of conduct
214191

RELEASES.md

+48-9
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,61 @@
11
# Releases
22

33

4-
## 0.8.2dev Development
4+
## 0.8.2
5+
6+
This releases introduces several new notable features. The less important
7+
but most exiting one being that we now have a logo for the toolbox (color
8+
and dark background) :
9+
10+
![](https://pythonot.github.io/master/_images/logo.svg)![](https://pythonot.github.io/master/_static/logo_dark.svg)
11+
12+
This logo is generated using with matplotlib and using the solution of an OT
13+
problem provided by POT (with `ot.emd`). Generating the logo can be done with a
14+
simple python script also provided in the [documentation gallery](https://pythonot.github.io/auto_examples/others/plot_logo.html#sphx-glr-auto-examples-others-plot-logo-py).
15+
16+
New OT solvers include [Weak
17+
OT](https://pythonot.github.io/gen_modules/ot.weak.html#ot.weak.weak_optimal_transport)
18+
and [OT with factored
19+
coupling](https://pythonot.github.io/gen_modules/ot.factored.html#ot.factored.factored_optimal_transport)
20+
that can be used on large datasets. The [Majorization Minimization](https://pythonot.github.io/gen_modules/ot.unbalanced.html?highlight=mm_#ot.unbalanced.mm_unbalanced) solvers for
21+
non-regularized Unbalanced OT are now also available. We also now provide an
22+
implementation of [GW and FGW unmixing](https://pythonot.github.io/gen_modules/ot.gromov.html#ot.gromov.gromov_wasserstein_linear_unmixing) and [dictionary learning](https://pythonot.github.io/gen_modules/ot.gromov.html#ot.gromov.gromov_wasserstein_dictionary_learning). It is now
23+
possible to use autodiff to solve entropic an quadratic regularized OT in the
24+
dual for full or stochastic optimization thanks to the new functions to compute
25+
the dual loss for [entropic](https://pythonot.github.io/gen_modules/ot.stochastic.html#ot.stochastic.loss_dual_entropic) and [quadratic](https://pythonot.github.io/gen_modules/ot.stochastic.html#ot.stochastic.loss_dual_quadratic) regularized OT and reconstruct the [OT
26+
plan](https://pythonot.github.io/gen_modules/ot.stochastic.html#ot.stochastic.plan_dual_entropic) on part or all of the data. They can be used for instance to solve OT
27+
problems with stochastic gradient or for estimating the [dual potentials as
28+
neural networks](https://pythonot.github.io/auto_examples/backends/plot_stoch_continuous_ot_pytorch.html#sphx-glr-auto-examples-backends-plot-stoch-continuous-ot-pytorch-py).
29+
30+
On the backend front, we now have backend compatible functions and classes in
31+
the domain adaptation [`ot.da`](https://pythonot.github.io/gen_modules/ot.da.html#module-ot.da) and unbalanced OT [`ot.unbalanced`](https://pythonot.github.io/gen_modules/ot.unbalanced.html) modules. This
32+
means that the DA classes can be used on tensors from all compatible backends.
33+
The [free support Wasserstein barycenter](https://pythonot.github.io/gen_modules/ot.lp.html?highlight=free%20support#ot.lp.free_support_barycenter) solver is now also backend compatible.
34+
35+
Finally we have worked on the documentation to provide an update of existing
36+
examples in the gallery and and several new examples including [GW dictionary
37+
learning](https://pythonot.github.io/auto_examples/gromov/plot_gromov_wasserstein_dictionary_learning.html#sphx-glr-auto-examples-gromov-plot-gromov-wasserstein-dictionary-learning-py)
38+
[weak Optimal
39+
Transport](https://pythonot.github.io/auto_examples/others/plot_WeakOT_VS_OT.html#sphx-glr-auto-examples-others-plot-weakot-vs-ot-py),
40+
[NN based dual potentials
41+
estimation](https://pythonot.github.io/auto_examples/backends/plot_stoch_continuous_ot_pytorch.html#sphx-glr-auto-examples-backends-plot-stoch-continuous-ot-pytorch-py)
42+
and [Factored coupling OT](https://pythonot.github.io/auto_examples/others/plot_factored_coupling.html#sphx-glr-auto-examples-others-plot-factored-coupling-py).
43+
.
544

645
#### New features
746

847
- Remove deprecated `ot.gpu` submodule (PR #361)
9-
- Update examples in the gallery (PR #359).
48+
- Update examples in the gallery (PR #359)
1049
- Add stochastic loss and OT plan computation for regularized OT and
11-
backend examples(PR #360).
12-
- Implementation of factored OT with emd and sinkhorn (PR #358).
50+
backend examples(PR #360)
51+
- Implementation of factored OT with emd and sinkhorn (PR #358)
1352
- A brand new logo for POT (PR #357)
14-
- Better list of related examples in quick start guide with `minigallery` (PR #334).
53+
- Better list of related examples in quick start guide with `minigallery` (PR #334)
1554
- Add optional log-domain Sinkhorn implementation in WDA to support smaller values
16-
of the regularization parameter (PR #336).
17-
- Backend implementation for `ot.lp.free_support_barycenter` (PR #340).
18-
- Add weak OT solver + example (PR #341).
19-
- Add backend support for Domain Adaptation and Unbalanced solvers (PR #343).
55+
of the regularization parameter (PR #336)
56+
- Backend implementation for `ot.lp.free_support_barycenter` (PR #340)
57+
- Add weak OT solver + example (PR #341)
58+
- Add backend support for Domain Adaptation and Unbalanced solvers (PR #343)
2059
- Add (F)GW linear dictionary learning solvers + example (PR #319)
2160
- Add links to related PR and Issues in the doc release page (PR #350)
2261
- Add new minimization-maximization algorithms for solving exact Unbalanced OT + example (PR #362)
24.4 KB
Loading
22.9 KB
Loading
6.76 KB
Loading

docs/source/contributors.rst

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Contributors
2+
============
3+
4+
.. include:: ../../CONTRIBUTORS.md
5+
:parser: myst_parser.sphinx_
6+
:start-line: 2

docs/source/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Contents
2222
auto_examples/index
2323
releases
2424
.github/CONTRIBUTING
25+
contributors
2526
.github/CODE_OF_CONDUCT
2627

2728

docs/source/releases.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ Releases
33

44
.. include:: ../../RELEASES.md
55
:parser: myst_parser.sphinx_
6-
:start-line: 3
6+
:start-line: 2

examples/others/plot_logo.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
# sphinx_gallery_thumbnail_number = 1
2020

21-
# %%
21+
# %% Load modules
2222
import numpy as np
2323
import matplotlib.pyplot as pl
2424
import ot
@@ -36,21 +36,21 @@
3636
o1 = np.array([[0, 6.], [-1, 5], [-1.5, 4], [-1.5, 3], [-1, 2], [0, 1], ])
3737
o2 = np.array([[1, 6.], [2, 5], [2.5, 4], [2.5, 3], [2, 2], [1, 1], ])
3838

39-
# scaling and translation for letter O
39+
# Scaling and translation for letter O
4040
o1[:, 0] += 6.4
4141
o2[:, 0] += 6.4
4242
o1[:, 0] *= 0.6
4343
o2[:, 0] *= 0.6
4444

45-
# letter T
45+
# Letter T
4646
t1 = np.array([[-1, 6.], [-1, 5], [0, 4], [0, 3], [0, 2], [0, 1], ])
4747
t2 = np.array([[1.5, 6.], [1.5, 5], [0.5, 4], [0.5, 3], [0.5, 2], [0.5, 1], ])
4848

49-
# translatin the T
49+
# Translating the T
5050
t1[:, 0] += 7.1
5151
t2[:, 0] += 7.1
5252

53-
# Cocatenate all letters
53+
# Concatenate all letters
5454
x1 = np.concatenate((p1, o1, t1), axis=0)
5555
x2 = np.concatenate((p2, o2, t2), axis=0)
5656

ot/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
# utils functions
5252
from .utils import dist, unif, tic, toc, toq
5353

54-
__version__ = "0.8.2dev"
54+
__version__ = "0.8.2"
5555

5656
__all__ = ['emd', 'emd2', 'emd_1d', 'sinkhorn', 'sinkhorn2', 'utils',
5757
'datasets', 'bregman', 'lp', 'tic', 'toc', 'toq', 'gromov',

0 commit comments

Comments
 (0)