summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorRémi Flamary <remi.flamary@gmail.com>2021-11-05 17:13:14 +0100
committerGitHub <noreply@github.com>2021-11-05 17:13:14 +0100
commitcec41d3817067a2eb3031092735347efe4184237 (patch)
treee5af7c2e72fd6f50590b2dd1c5f1f6f47dceebc3 /docs
parent0eac835c70cc1a13bb998f3b6cdb0515fafc05e1 (diff)
[MRG] Release 0.8 (#289)
* working on release * test circleci * try again * cleanup circle ci run * add all PR and releant Issues * update doc * thanks idris * update version + add pyproject.toml * test pyproject.toml * revert tests * build wheels * use windows-latest for tests * add tests python 3.10 * build all whels * all versions * build all wheels * build all wheels * cleanup pep8 and minimal acions * forst shot text release * bettr text * stuff * release text updated * update manifest to allow build from source * update doc again * update release
Diffstat (limited to 'docs')
-rw-r--r--docs/source/readme.rst28
-rw-r--r--docs/source/releases.rst134
2 files changed, 156 insertions, 6 deletions
diff --git a/docs/source/readme.rst b/docs/source/readme.rst
index ee32e2b..a8f1bc0 100644
--- a/docs/source/readme.rst
+++ b/docs/source/readme.rst
@@ -34,6 +34,9 @@ POT provides the following generic OT solvers (links to examples):
[21] and unmixing [4].
- Sinkhorn divergence [23] and entropic regularization OT from
empirical data.
+- Debiased Sinkhorn barycenters `Sinkhorn divergence
+ barycenter <auto_examples/barycenters/plot_debiased_barycenter.html>`__
+ [37]
- `Smooth optimal transport
solvers <auto_examples/plot_OT_1D_smooth.html>`__
(dual and semi-dual) for KL and squared L2 regularizations [17].
@@ -44,7 +47,8 @@ POT provides the following generic OT solvers (links to examples):
distances <auto_examples/gromov/plot_gromov.html>`__
and `GW
barycenters <auto_examples/gromov/plot_gromov_barycenter.html>`__
- (exact [13] and regularized [12])
+ (exact [13] and regularized [12]), differentiable using gradients
+ from
- `Fused-Gromov-Wasserstein distances
solver <auto_examples/gromov/plot_fgw.html#sphx-glr-auto-examples-plot-fgw-py>`__
and `FGW
@@ -70,7 +74,8 @@ POT provides the following generic OT solvers (links to examples):
(exact [29] and entropic [3] formulations).
- `Sliced
Wasserstein <auto_examples/sliced-wasserstein/plot_variance.html>`__
- [31, 32].
+ [31, 32] and Max-sliced Wasserstein [35] that can be used for
+ gradient flows [36].
- `Several
backends <https://pythonot.github.io/quickstart.html#solving-ot-with-multiple-backends>`__
for easy use of POT with
@@ -278,7 +283,8 @@ The contributors to this library are
Rakotomamonjy <https://sites.google.com/site/alainrakotomamonjy/home>`__
- `Vayer Titouan <https://tvayer.github.io/>`__ (Gromov-Wasserstein -,
Fused-Gromov-Wasserstein)
-- `Hicham Janati <https://hichamjanati.github.io/>`__ (Unbalanced OT)
+- `Hicham Janati <https://hichamjanati.github.io/>`__ (Unbalanced OT,
+ Debiased barycenters)
- `Romain Tavenard <https://rtavenar.github.io/>`__ (1d Wasserstein)
- `Mokhtar Z. Alaya <http://mzalaya.github.io/>`__ (Screenkhorn)
- `Ievgen Redko <https://ievred.github.io/>`__ (Laplacian DA, JCPOT)
@@ -501,6 +507,22 @@ gans <https://openaccess.thecvf.com/content_CVPR_2019/papers/Deshpande_Max-Slice
In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern
Recognition (pp. 10648-10656).
+[36] Liutkus, A., Simsekli, U., Majewski, S., Durmus, A., & Stöter, F.
+R. (2019, May). `Sliced-Wasserstein flows: Nonparametric generative
+modeling via optimal transport and
+diffusions <http://proceedings.mlr.press/v97/liutkus19a/liutkus19a.pdf>`__.
+In International Conference on Machine Learning (pp. 4104-4113). PMLR.
+
+[37] Janati, H., Cuturi, M., Gramfort, A. `Debiased sinkhorn
+barycenters <http://proceedings.mlr.press/v119/janati20a/janati20a.pdf>`__
+Proceedings of the 37th International Conference on Machine Learning,
+PMLR 119:4692-4701, 2020
+
+[38] C. Vincent-Cuaz, T. Vayer, R. Flamary, M. Corneli, N. Courty,
+`Online Graph Dictionary
+Learning <https://arxiv.org/pdf/2102.06555.pdf>`__, International
+Conference on Machine Learning (ICML), 2021.
+
.. |PyPI version| image:: https://badge.fury.io/py/POT.svg
:target: https://badge.fury.io/py/POT
.. |Anaconda Cloud| image:: https://anaconda.org/conda-forge/pot/badges/version.svg
diff --git a/docs/source/releases.rst b/docs/source/releases.rst
index 5a357f3..aa06105 100644
--- a/docs/source/releases.rst
+++ b/docs/source/releases.rst
@@ -1,6 +1,132 @@
Releases
========
+0.8.0
+-----
+
+*November 2021*
+
+This new stable release introduces several important features.
+
+First we now have an OpenMP compatible exact ot solver in ``ot.emd``.
+The OpenMP version is used when the parameter ``numThreads`` is greater
+than one and can lead to nice speedups on multi-core machines.
+
+| Second we have introduced a backend mechanism that allows to use
+ standard POT function seamlessly on Numpy, Pytorch and Jax arrays.
+ Other backends are coming but right now POT can be used seamlessly for
+ training neural networks in Pytorch. Notably we propose the first
+ differentiable computation of the exact OT loss with ``ot.emd2`` (can
+ be differentiated w.r.t. both cost matrix and sample weights), but
+ also for the classical Sinkhorn loss with ``ot.sinkhorn2``, the
+ Wasserstein distance in 1D with ``ot.wasserstein_1d``, sliced
+ Wasserstein with ``ot.sliced_wasserstein_distance`` and
+ Gromov-Wasserstein with ``ot.gromov_wasserstein2``. Examples of how
+ this new feature can be used are now available in the documentation
+ where the Pytorch backend is used to estimate a `minimal Wasserstein
+ estimator <https://PythonOT.github.io/auto_examples/backends/plot_unmix_optim_torch.html>`__,
+ a `Generative Network
+ (GAN) <https://PythonOT.github.io/auto_examples/backends/plot_wass2_gan_torch.html>`__,
+ for a `sliced Wasserstein gradient
+ flow <https://PythonOT.github.io/auto_examples/backends/plot_sliced_wass_grad_flow_pytorch.html>`__
+ and `optimizing the Gromov-Wassersein
+ distance <https://PythonOT.github.io/auto_examples/backends/plot_optim_gromov_pytorch.html>`__.
+ Note that the Jax backend is still in early development and quite slow
+ at the moment, we strongly recommend for Jax users to use the `OTT
+ toolbox <https://github.com/google-research/ott>`__ when possible.
+| As a result of this new feature, the old ``ot.gpu`` submodule is now
+ deprecated since GPU implementations can be done using GPU arrays on
+ the torch backends.
+
+Other novel features include implementation for `Sampled Gromov
+Wasserstein and Pointwise Gromov
+Wasserstein <https://PythonOT.github.io/auto_examples/gromov/plot_gromov.html#compute-gw-with-a-scalable-stochastic-method-with-any-loss-function>`__,
+Sinkhorn in log space with ``method='sinkhorn_log'``, `Projection Robust
+Wasserstein <https://PythonOT.github.io/gen_modules/ot.dr.html?highlight=robust#ot.dr.projection_robust_wasserstein>`__,
+ans `deviased Sinkorn
+barycenters <https://PythonOT.github.ioauto_examples/barycenters/plot_debiased_barycenter.html>`__.
+
+This release will also simplify the installation process. We have now a
+``pyproject.toml`` that defines the build dependency and POT should now
+build even when cython is not installed yet. Also we now provide
+pe-compiled wheels for linux ``aarch64`` that is used on Raspberry PI
+and android phones and for MacOS on ARM processors.
+
+Finally POT was accepted for publication in the Journal of Machine
+Learning Research (JMLR) open source software track and we ask the POT
+users to cite `this
+paper <https://www.jmlr.org/papers/v22/20-451.html>`__ from now on. The
+documentation has been improved in particular by adding a "Why OT?"
+section to the quick start guide and several new examples illustrating
+the new features. The documentation now has two version : the stable
+version https://pythonot.github.io/ corresponding to the last release
+and the master version https://pythonot.github.io/master that
+corresponds to the current master branch on GitHub.
+
+As usual, we want to thank all the POT contributors (now 37 people have
+contributed to the toolbox). But for this release we thank in particular
+Nathan Cassereau and Kamel Guerda from the AI support team at
+`IDRIS <http://www.idris.fr/>`__ for their support to the development of
+the backend and OpenMP implementations.
+
+New features
+^^^^^^^^^^^^
+
+- OpenMP support for exact OT solvers (PR #260)
+- Backend for running POT in numpy/torch + exact solver (PR #249)
+- Backend implementation of most functions in ``ot.bregman`` (PR #280)
+- Backend implementation of most functions in ``ot.optim`` (PR #282)
+- Backend implementation of most functions in ``ot.gromov`` (PR #294,
+ PR #302)
+- Test for arrays of different type and device (CPU/GPU) (PR #304,
+ #303)
+- Implementation of Sinkhorn in log space with
+ ``method='sinkhorn_log'`` (PR #290)
+- Implementation of regularization path for L2 Unbalanced OT (PR #274)
+- Implementation of Projection Robust Wasserstein (PR #267)
+- Implementation of Debiased Sinkhorn Barycenters (PR #291)
+- Implementation of Sampled Gromov Wasserstein and Pointwise Gromov
+ Wasserstein (PR #275)
+- Add ``pyproject.toml`` and build POT without installing cython first
+ (PR #293)
+- Lazy implementation in log space for sinkhorn on samples (PR #259)
+- Documentation cleanup (PR #298)
+- Two up-to-date documentations `for stable
+ release <https://PythonOT.github.io/>`__ and for `master
+ branch <https://pythonot.github.io/master/>`__.
+- Building wheels on ARM for Raspberry PI and smartphones (PR #238)
+- Update build wheels to new version and new pythons (PR #236, #253)
+- Implementation of sliced Wasserstein distance (Issue #202, PR #203)
+- Add minimal build to CI and perform pep8 test separately (PR #210)
+- Speedup of tests and return run time (PR #262)
+- Add "Why OT" discussion to the documentation (PR #220)
+- New introductory example to discrete OT in the documentation (PR
+ #191)
+- Add templates for Issues/PR on Github (PR#181)
+
+Closed issues
+^^^^^^^^^^^^^
+
+- Debug Memory leak in GAN example (#254)
+- DEbug GPU bug (Issue #284, #287, PR #288)
+- set\_gradients method for JAX backend (PR #278)
+- Quicker GAN example for CircleCI build (PR #258)
+- Better formatting in Readme (PR #234)
+- Debug CI tests (PR #240, #241, #242)
+- Bug in Partial OT solver dummy points (PR #215)
+- Bug when Armijo linesearch (Issue #184, #198, #281, PR #189, #199,
+ #286)
+- Bug Barycenter Sinkhorn (Issue 134, PR #195)
+- Infeasible solution in exact OT (Issues #126,#93, PR #217)
+- Doc for SUpport Barycenters (Issue #200, PR #201)
+- Fix labels transport in BaseTransport (Issue #207, PR #208)
+- Bug in ``emd_1d``, non respected bounds (Issue #169, PR #170)
+- Removed Python 2.7 support and update codecov file (PR #178)
+- Add normalization for WDA and test it (PR #172, #296)
+- Cleanup code for new version of ``flake8`` (PR #176)
+- Fixed requirements in ``setup.py`` (PR #174)
+- Removed specific MacOS flags (PR #175)
+
0.7.0
-----
@@ -50,7 +176,7 @@ problems.
This release is also the moment to thank all the POT contributors (old
and new) for helping making POT such a nice toolbox. A lot of changes
-(also in the API) are comming for the next versions.
+(also in the API) are coming for the next versions.
Features
^^^^^^^^
@@ -72,6 +198,8 @@ Features
Closed issues
^^^^^^^^^^^^^
+- Add JMLR paper to teh readme ad Mathieu Blondel to the Acknoledgments
+ (PR #231, #232)
- Bug in Unbalanced OT example (Issue #127)
- Clean Cython output when calling setup.py clean (Issue #122)
- Various Macosx compilation problems (Issue #113, Issue #118, PR#130)
@@ -103,8 +231,8 @@ mathematical problems and research but with the new contributions we now
implement algorithms and solvers from 24 scientific papers (listed in
the README.md file). New features include a direct implementation of the
`empirical Sinkhorn
-divergence <all.html#ot.bregman.empirical_sinkhorn_divergence>`__
-, a new efficient (Cython implementation) solver for `EMD in
+divergence <all.html#ot.bregman.empirical_sinkhorn_divergence>`__,
+a new efficient (Cython implementation) solver for `EMD in
1D <all.html#ot.lp.emd_1d>`__ and
corresponding `Wasserstein
1D <all.html#ot.lp.wasserstein_1d>`__.