From 852e330bfca616e033fa4453fcd77bd4f1af1a06 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 09:43:37 +0200 Subject: prepare for version 1.0 --- Makefile | 5 +++++ ot/__init__.py | 15 ++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 4cdb7d1..bd3c1b4 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,8 @@ PYTHON=python3 branch := $(shell git symbolic-ref --short -q HEAD) +CIBW_BEFORE_BUILD="pip install numpy cython" + help : @echo "The following make targets are available:" @@ -73,5 +75,8 @@ autopep8 : aautopep8 : autopep8 -air test ot examples --jobs -1 + +wheels: + cibuildwheel --platform linux --output-dir dist FORCE : diff --git a/ot/__init__.py b/ot/__init__.py index 35ae6fc..571f235 100644 --- a/ot/__init__.py +++ b/ot/__init__.py @@ -71,10 +71,11 @@ from .da import sinkhorn_lpl1_mm # utils functions from .utils import dist, unif, tic, toc, toq -__version__ = "0.5.1" - -__all__ = ["emd", "emd2", 'emd_1d', "sinkhorn", "sinkhorn2", "utils", 'datasets', - 'bregman', 'lp', 'tic', 'toc', 'toq', 'gromov', - 'emd_1d', 'emd2_1d', 'wasserstein_1d', - 'dist', 'unif', 'barycenter', 'sinkhorn_lpl1_mm', 'da', 'optim', - 'sinkhorn_unbalanced', "barycenter_unbalanced"] +__version__ = "1.0.0" + +__all__ = ["emd", "emd2", 'emd_1d','emd2_1d', 'wasserstein_1d', + "sinkhorn", "sinkhorn2", 'barycenter', + 'sinkhorn_lpl1_mm', + 'sinkhorn_unbalanced', "barycenter_unbalanced", + 'dist', 'unif', 'tic', 'toc', 'toq', + "utils", 'datasets', 'bregman', 'lp', 'gromov', 'da', 'optim'] -- cgit v1.2.3 From 17ba10e33a3eeb3a5a03af4dfb2cddc900bc1f2e Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 10:27:40 +0200 Subject: clean manifest and add wheels build in Makefile --- MANIFEST.in | 2 +- Makefile | 20 +++++++++++++------- README.md | 2 -- setup.py | 4 ++-- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index e0acb7a..df4e139 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,5 @@ -graft ot/lp/ include README.md +include RELEASES.md include LICENSE include ot/lp/core.h include ot/lp/EMD.h diff --git a/Makefile b/Makefile index bd3c1b4..729fd8c 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ PYTHON=python3 branch := $(shell git symbolic-ref --short -q HEAD) -CIBW_BEFORE_BUILD="pip install numpy cython" + help : @@ -15,6 +15,7 @@ help : @echo " sremove - remove the package (system with sudo)" @echo " clean - remove any temporary files" @echo " notebook - launch ipython notebook" + build : $(PYTHON) setup.py build @@ -49,14 +50,15 @@ test : FORCE pep8 pytest : FORCE $(PYTHON) -m pytest -v test/ --doctest-modules --ignore ot/gpu/ --cov=ot -uploadpypi : - #python setup.py register - $(PYTHON) setup.py sdist upload -r pypi +release : + twine upload dist/* + +release_test : + twine upload --repository-url https://test.pypi.org/legacy/ dist/* rdoc : pandoc --from=markdown --to=rst --output=docs/source/readme.rst README.md - notebook : ipython notebook --matplotlib=inline --notebook-dir=notebooks/ @@ -76,7 +78,11 @@ autopep8 : aautopep8 : autopep8 -air test ot examples --jobs -1 -wheels: - cibuildwheel --platform linux --output-dir dist +wheels : + CIBW_BEFORE_BUILD="pip install numpy cython" cibuildwheel --platform linux --output-dir dist + +dist : wheels + $(PYTHON) setup.py sdist + FORCE : diff --git a/README.md b/README.md index 8cf798f..69a826a 100644 --- a/README.md +++ b/README.md @@ -166,8 +166,6 @@ This toolbox has been created and is maintained by The contributors to this library are -* [Rémi Flamary](http://remi.flamary.com/) -* [Nicolas Courty](http://people.irisa.fr/Nicolas.Courty/) * [Alexandre Gramfort](http://alexandre.gramfort.net/) * [Laetitia Chapel](http://people.irisa.fr/Laetitia.Chapel/) * [Michael Perrot](http://perso.univ-st-etienne.fr/pem82055/) (Mapping estimation) diff --git a/setup.py b/setup.py index bbcaf04..89b43d9 100755 --- a/setup.py +++ b/setup.py @@ -53,8 +53,8 @@ setup(name='POT', license = 'MIT', scripts=[], data_files=[], - requires=["numpy","scipy","cython","matplotlib"], - install_requires=["numpy","scipy","cython","matplotlib"], + requires=["numpy","scipy","cython"], + install_requires=["numpy","scipy","cython"], classifiers=[ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', -- cgit v1.2.3 From 384237683ae51e6842f484b546a090ca66d8ec4e Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 11:20:16 +0200 Subject: update classifier + release text --- RELEASES.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ setup.py | 13 +++++++++++-- 2 files changed, 66 insertions(+), 2 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index a617441..bb0b778 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,6 +1,61 @@ # POT Releases +## 1.0.0 Out of beta +*July 2019* + +This is the first official stable release of POT this means a jump to 1.0.0! +The library has been used in +the wild for a while now and we have reached a state where a lot of fundamental +OT solvers are available and tested. It has been quite stable in the last months +but kept the beta flag in its Pypi classifiers until now. + +The features are never complete in a toolbox designed for solving mathematical +problems 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](https://pot.readthedocs.io/en/latest/all.html#ot.bregman.empirical_sinkhorn_divergence) +, a new efficient (Cython implementation) solver for [EMD in 1D](https://pot.readthedocs.io/en/latest/all.html#ot.lp.emd_1d) +and corresponding [Wasserstein +1D](https://pot.readthedocs.io/en/latest/all.html#ot.lp.wasserstein_1d). We now also +have implementations for [Unbalanced OT](https://github.com/rflamary/POT/blob/master/notebooks/plot_UOT_1D.ipynb) +and a solver for [Unbalanced OT barycenters](https://github.com/rflamary/POT/blob/master/notebooks/plot_UOT_barycenter_1D.ipynb). +A new variant of Gromov-Wasserstein divergence called [Fused +Gromov-Wasserstein](https://pot.readthedocs.io/en/latest/all.html?highlight=fused_#ot.gromov.fused_gromov_wasserstein) +with exemples of use on [tructured data](https://github.com/rflamary/POT/blob/master/notebooks/plot_fgw.ipynb) +and computing [barycenters of labeld graphs](https://github.com/rflamary/POT/blob/master/notebooks/plot_barycenter_fgw.ipynb). + + +Finally a lot of work has been done on the documentation with several new +examples corresponding to the new features and a lot of corrections for the +docstrings. But the most visible change is a new +[quick start guide](https://pot.readthedocs.io/en/latest/quickstart.html) for +POT that gives several pointers about which function or classes allow to solve a +specific OT problem. When possible a link is provided to relevant examples. + +TODO contributors + +#### Features + +* Add compiled manylinux 64bits wheels to pip releases (PR #91) +* Add quick start guide (PR #88) +* Make doctest work on travis (PR #90) +* Update documentation (PR #79, PR #84) +* Solver for EMD in 1D (PR #89) +* Solvers for regularized unbalanced OT (PR #87) +* Solver for Fused Gromov-Wasserstein (PR #86) +* Add empirical Sinkhorn and empirical Sinkhorn divergences (PR #80) + + +#### Closed issues + +- Issue #59 fail when using "pip install POT" (new details in doc+ hopefully + wheels) +- Issue #85 Cannot run gpu modules +- Issue #75 Greenkhorn do not return log (solved in PR #76) +- Issue #82 Gromov-Wasserstein fails when the cost matrices are slightly different +- Issue #72 Macosx build problem + + ## 0.5.0 Year 2 *Sep 2018* diff --git a/setup.py b/setup.py index 89b43d9..ee32510 100755 --- a/setup.py +++ b/setup.py @@ -56,15 +56,24 @@ setup(name='POT', requires=["numpy","scipy","cython"], install_requires=["numpy","scipy","cython"], classifiers=[ - 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', + 'Intended Audience :: Education', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: MIT License', 'Environment :: Console', 'Operating System :: OS Independent', 'Operating System :: MacOS', 'Operating System :: POSIX', 'Programming Language :: Python', + 'Programming Language :: C++', + 'Programming Language :: C', + 'Programming Language :: Cython', 'Topic :: Utilities', - 'Programming Language :: Python :: 2', + 'Topic :: Scientific/Engineering :: Artificial Intelligence', + 'Topic :: Scientific/Engineering :: Mathematics', + 'Topic :: Scientific/Engineering :: Information Analysis', + 'Programming Language :: Python :: 2',' 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', -- cgit v1.2.3 From c749279ae3c712e70d4e59647f535448168dbb26 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 11:26:05 +0200 Subject: corresp bug setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ee32510..c08e3e0 100755 --- a/setup.py +++ b/setup.py @@ -73,7 +73,7 @@ setup(name='POT', 'Topic :: Scientific/Engineering :: Artificial Intelligence', 'Topic :: Scientific/Engineering :: Mathematics', 'Topic :: Scientific/Engineering :: Information Analysis', - 'Programming Language :: Python :: 2',' + 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', -- cgit v1.2.3 From a6545c4a306c8cbbb5556983533d809808f480a3 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 11:43:13 +0200 Subject: update release text --- RELEASES.md | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index bb0b778..e5a20c8 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -4,14 +4,19 @@ ## 1.0.0 Out of beta *July 2019* -This is the first official stable release of POT this means a jump to 1.0.0! +This is the first official stable release of POT and this means a jump to 1.0.0! The library has been used in the wild for a while now and we have reached a state where a lot of fundamental OT solvers are available and tested. It has been quite stable in the last months -but kept the beta flag in its Pypi classifiers until now. +but kept the beta flag in its Pypi classifiers until now. + +Note that this major +release will be the last one supporting officially Python 2.7 (See +https://python3statement.org/ for more reasons). For next release we will keep +the travis tests for Python 2 but will make them non necessary for merge in 2020. The features are never complete in a toolbox designed for solving mathematical -problems but with the new contributions we now implement algorithms and solvers +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](https://pot.readthedocs.io/en/latest/all.html#ot.bregman.empirical_sinkhorn_divergence) , a new efficient (Cython implementation) solver for [EMD in 1D](https://pot.readthedocs.io/en/latest/all.html#ot.lp.emd_1d) @@ -21,18 +26,27 @@ have implementations for [Unbalanced OT](https://github.com/rflamary/POT/blob/ma and a solver for [Unbalanced OT barycenters](https://github.com/rflamary/POT/blob/master/notebooks/plot_UOT_barycenter_1D.ipynb). A new variant of Gromov-Wasserstein divergence called [Fused Gromov-Wasserstein](https://pot.readthedocs.io/en/latest/all.html?highlight=fused_#ot.gromov.fused_gromov_wasserstein) -with exemples of use on [tructured data](https://github.com/rflamary/POT/blob/master/notebooks/plot_fgw.ipynb) + has been also contributed with exemples of use on [tructured data](https://github.com/rflamary/POT/blob/master/notebooks/plot_fgw.ipynb) and computing [barycenters of labeld graphs](https://github.com/rflamary/POT/blob/master/notebooks/plot_barycenter_fgw.ipynb). -Finally a lot of work has been done on the documentation with several new +A lot of work has been done on the documentation with several new examples corresponding to the new features and a lot of corrections for the docstrings. But the most visible change is a new [quick start guide](https://pot.readthedocs.io/en/latest/quickstart.html) for POT that gives several pointers about which function or classes allow to solve a specific OT problem. When possible a link is provided to relevant examples. -TODO contributors +We will also provide with this release some pre-compiled Python wheels for Linux +64bit on +github and pip. This will simplify the install process that before requires a C +compiler and numpy/cython already installed. + +Finally we would like to acknowledge and thank the numerous contributors of POT +that has helped in the past build the foundation and are still contributing to +bring new features and solvers to the library. + + #### Features -- cgit v1.2.3 From 3a09a0ace10c184dc27a2fcc1f982208e4d9eb67 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 11:44:02 +0200 Subject: add python 3.7 on travis --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5e5694b..932f610 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,10 @@ matrix: python: 3.5 - os: linux sudo: required - python: 3.6 + python: 3.6 + - os: linux + sudo: required + python: 3.7 - os: linux sudo: required python: 2.7 -- cgit v1.2.3 From bfc84efcd94c03bebb80330aa1f2a92a4efb0ff9 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 13:01:12 +0200 Subject: add xenial in travis pfor python 3.7 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 932f610..68b8ef1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +dist: xenial # required for Python >= 3.7 language: python matrix: # allow_failures: -- cgit v1.2.3 From 0bc936f62430c98ecbb0f39c9508f29c6054a327 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 13:06:07 +0200 Subject: travis xenial new --- .travis.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 68b8ef1..67f0c43 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,12 +21,13 @@ matrix: - os: linux sudo: required python: 2.7 + - name: "Python 3.7.3 on Windows" + os: windows # Windows 10.0.17134 N/A Build 17134 + language: shell # 'language: python' is an error on Travis CI Windows + before_install: choco install python + env: PATH=/c/Python37:/c/Python37/Scripts:$PATH before_install: - ./.travis/before_install.sh -before_script: # configure a headless display to test plot generation - - "export DISPLAY=:99.0" - - "sh -e /etc/init.d/xvfb start" - - sleep 3 # give xvfb some time to start # command to install dependencies install: - pip install -r requirements.txt -- cgit v1.2.3 From 7ac1b462d23ae0a396742bba4773e146e60e7502 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 13:47:43 +0200 Subject: cleanup parmap on windows --- .travis.yml | 51 ++++++++++++++++++++++++++------------------------- ot/lp/__init__.py | 14 ++++++++++++-- ot/utils.py | 31 ++++++++++++++++++------------- requirements.txt | 1 + 4 files changed, 57 insertions(+), 40 deletions(-) diff --git a/.travis.yml b/.travis.yml index 67f0c43..cddf0e0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,31 +1,32 @@ dist: xenial # required for Python >= 3.7 language: python matrix: -# allow_failures: -# - os: osx - include: -# - os: osx -# language: generic - - os: linux - sudo: required - python: 3.4 - - os: linux - sudo: required - python: 3.5 - - os: linux - sudo: required - python: 3.6 - - os: linux - sudo: required - python: 3.7 - - os: linux - sudo: required - python: 2.7 - - name: "Python 3.7.3 on Windows" - os: windows # Windows 10.0.17134 N/A Build 17134 - language: shell # 'language: python' is an error on Travis CI Windows - before_install: choco install python - env: PATH=/c/Python37:/c/Python37/Scripts:$PATH + allow_failures: + - os: osx + - os: windows + include: + - os: osx + language: generic + - os: linux + sudo: required + python: 3.4 + - os: linux + sudo: required + python: 3.5 + - os: linux + sudo: required + python: 3.6 + - os: linux + sudo: required + python: 3.7 + - os: linux + sudo: required + python: 2.7 + - name: "Python 3.7.3 on Windows" + os: windows # Windows 10.0.17134 N/A Build 17134 + language: shell # 'language: python' is an error on Travis CI Windows + before_install: choco install python + env: PATH=/c/Python37:/c/Python37/Scripts:$PATH before_install: - ./.travis/before_install.sh # command to install dependencies diff --git a/ot/lp/__init__.py b/ot/lp/__init__.py index 17f1731..0c92810 100644 --- a/ot/lp/__init__.py +++ b/ot/lp/__init__.py @@ -11,7 +11,7 @@ Solvers for the original linear program OT problem # License: MIT License import multiprocessing - +import sys import numpy as np from scipy.sparse import coo_matrix @@ -151,6 +151,8 @@ def emd2(a, b, M, processes=multiprocessing.cpu_count(), Target histogram (uniform weight if empty list) M : (ns,nt) numpy.ndarray, float64 Loss matrix (c-order array with type float64) + processes : int, optional (default=nb cpu) + Nb of processes used for multiple emd computation (not used on windows) numItermax : int, optional (default=100000) The maximum number of iterations before stopping the optimization algorithm if it has not converged. @@ -200,6 +202,10 @@ def emd2(a, b, M, processes=multiprocessing.cpu_count(), b = np.asarray(b, dtype=np.float64) M = np.asarray(M, dtype=np.float64) + # problem with pikling Forks + if sys.platform.endswith('win32'): + processes=1 + # if empty array given then use uniform distributions if len(a) == 0: a = np.ones((M.shape[0],), dtype=np.float64) / M.shape[0] @@ -228,7 +234,11 @@ def emd2(a, b, M, processes=multiprocessing.cpu_count(), return f(b) nb = b.shape[1] - res = parmap(f, [b[:, i] for i in range(nb)], processes) + if processes>1: + res = parmap(f, [b[:, i] for i in range(nb)], processes) + else: + res = list(map(f, [b[:, i].copy() for i in range(nb)])) + return res diff --git a/ot/utils.py b/ot/utils.py index e8249ef..5707d9b 100644 --- a/ot/utils.py +++ b/ot/utils.py @@ -214,23 +214,28 @@ def fun(f, q_in, q_out): def parmap(f, X, nprocs=multiprocessing.cpu_count()): - """ paralell map for multiprocessing """ - q_in = multiprocessing.Queue(1) - q_out = multiprocessing.Queue() + """ paralell map for multiprocessing (only map on windows)""" - proc = [multiprocessing.Process(target=fun, args=(f, q_in, q_out)) - for _ in range(nprocs)] - for p in proc: - p.daemon = True - p.start() + if not sys.platform.endswith('win32'): - sent = [q_in.put((i, x)) for i, x in enumerate(X)] - [q_in.put((None, None)) for _ in range(nprocs)] - res = [q_out.get() for _ in range(len(sent))] + q_in = multiprocessing.Queue(1) + q_out = multiprocessing.Queue() - [p.join() for p in proc] + proc = [multiprocessing.Process(target=fun, args=(f, q_in, q_out)) + for _ in range(nprocs)] + for p in proc: + p.daemon = True + p.start() - return [x for i, x in sorted(res)] + sent = [q_in.put((i, x)) for i, x in enumerate(X)] + [q_in.put((None, None)) for _ in range(nprocs)] + res = [q_out.get() for _ in range(len(sent))] + + [p.join() for p in proc] + + return [x for i, x in sorted(res)] + else: + return list(map(f, X)) def check_params(**kwargs): diff --git a/requirements.txt b/requirements.txt index 97d165b..5a3432b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,5 @@ matplotlib sphinx-gallery autograd pymanopt +cvxopt pytest -- cgit v1.2.3 From 41706d1c35bfe5f55f36041f511e2a42e36f6ab7 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 14:03:15 +0200 Subject: remove test for python 3.4 --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index cddf0e0..57b961b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,10 +6,8 @@ matrix: - os: windows include: - os: osx - language: generic - - os: linux sudo: required - python: 3.4 + language: generic - os: linux sudo: required python: 3.5 -- cgit v1.2.3 From 2873ba559bb6d3ccceeee326848d7216a139ed88 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Fri, 5 Jul 2019 14:14:52 +0200 Subject: remove windows and macosx tests, will add to master after release --- .travis.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 57b961b..0dfb0d0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,10 @@ dist: xenial # required for Python >= 3.7 language: python matrix: - allow_failures: - - os: osx - - os: windows + # allow_failures: + # - os: osx + # - os: windows include: - - os: osx - sudo: required - language: generic - os: linux sudo: required python: 3.5 @@ -20,11 +17,14 @@ matrix: - os: linux sudo: required python: 2.7 - - name: "Python 3.7.3 on Windows" - os: windows # Windows 10.0.17134 N/A Build 17134 - language: shell # 'language: python' is an error on Travis CI Windows - before_install: choco install python - env: PATH=/c/Python37:/c/Python37/Scripts:$PATH + # - os: osx + # sudo: required + # language: generic + # - name: "Python 3.7.3 on Windows" + # os: windows # Windows 10.0.17134 N/A Build 17134 + # language: shell # 'language: python' is an error on Travis CI Windows + # before_install: choco install python + # env: PATH=/c/Python37:/c/Python37/Scripts:$PATH before_install: - ./.travis/before_install.sh # command to install dependencies -- cgit v1.2.3 From cc37dd9729460fdd0766ffc71be78683d6a1e408 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Mon, 8 Jul 2019 10:02:10 +0200 Subject: small change in redame --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 69a826a..bba27ff 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ year={2017} ## Installation -The library has been tested on Linux, MacOSX and Windows. It requires a C++ compiler for using the EMD solver and relies on the following Python modules: +The library has been tested on Linux, MacOSX and Windows. It requires a C++ compiler for building/installing the EMD solver and relies on the following Python modules: - Numpy (>=1.11) - Scipy (>=1.0) -- cgit v1.2.3 From 371a8354a69fd5f0dfc035f4f3554fe11ef42bb2 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Mon, 8 Jul 2019 10:06:17 +0200 Subject: tupos in RELEASES.md --- RELEASES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index e5a20c8..112e4ab 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -26,7 +26,7 @@ have implementations for [Unbalanced OT](https://github.com/rflamary/POT/blob/ma and a solver for [Unbalanced OT barycenters](https://github.com/rflamary/POT/blob/master/notebooks/plot_UOT_barycenter_1D.ipynb). A new variant of Gromov-Wasserstein divergence called [Fused Gromov-Wasserstein](https://pot.readthedocs.io/en/latest/all.html?highlight=fused_#ot.gromov.fused_gromov_wasserstein) - has been also contributed with exemples of use on [tructured data](https://github.com/rflamary/POT/blob/master/notebooks/plot_fgw.ipynb) + has been also contributed with exemples of use on [structured data](https://github.com/rflamary/POT/blob/master/notebooks/plot_fgw.ipynb) and computing [barycenters of labeld graphs](https://github.com/rflamary/POT/blob/master/notebooks/plot_barycenter_fgw.ipynb). @@ -34,12 +34,12 @@ A lot of work has been done on the documentation with several new examples corresponding to the new features and a lot of corrections for the docstrings. But the most visible change is a new [quick start guide](https://pot.readthedocs.io/en/latest/quickstart.html) for -POT that gives several pointers about which function or classes allow to solve a +POT that gives several pointers about which function or classes allow to solve which specific OT problem. When possible a link is provided to relevant examples. We will also provide with this release some pre-compiled Python wheels for Linux 64bit on -github and pip. This will simplify the install process that before requires a C +github and pip. This will simplify the install process that before required a C compiler and numpy/cython already installed. Finally we would like to acknowledge and thank the numerous contributors of POT -- cgit v1.2.3 From c698e0aa20d28e36d25f87082855a490283f3c88 Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Thu, 11 Jul 2019 15:24:39 +0200 Subject: update readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bba27ff..d8bb051 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,8 @@ Here is a list of the Python notebooks available [here](https://github.com/rflam * [Wasserstein Discriminant Analysis](https://github.com/rflamary/POT/blob/master/notebooks/plot_WDA.ipynb) * [Gromov Wasserstein](https://github.com/rflamary/POT/blob/master/notebooks/plot_gromov.ipynb) * [Gromov Wasserstein Barycenter](https://github.com/rflamary/POT/blob/master/notebooks/plot_gromov_barycenter.ipynb) - +* [Fused Gromov Wasserstein](https://github.com/rflamary/POT/blob/master/notebooks/plot_fgw.ipynb) +* [Fused Gromov Wasserstein Barycenter](https://github.com/rflamary/POT/blob/master/notebooks/plot_barycenter_fgw.ipynb) You can also see the notebooks with [Jupyter nbviewer](https://nbviewer.jupyter.org/github/rflamary/POT/tree/master/notebooks/). -- cgit v1.2.3 From 29848c2ab362fc5ff466cb0e12409a1cca61644f Mon Sep 17 00:00:00 2001 From: Rémi Flamary Date: Mon, 9 Sep 2019 15:25:57 +0200 Subject: cleanup verison number 1.0- --- RELEASES.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 112e4ab..66eee19 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,17 +1,16 @@ # POT Releases -## 1.0.0 Out of beta +## 0.6 Year 3 *July 2019* -This is the first official stable release of POT and this means a jump to 1.0.0! +This is the first official stable release of POT and this means a jump to 0.6! The library has been used in the wild for a while now and we have reached a state where a lot of fundamental OT solvers are available and tested. It has been quite stable in the last months but kept the beta flag in its Pypi classifiers until now. -Note that this major -release will be the last one supporting officially Python 2.7 (See +Note that this release will be the last one supporting officially Python 2.7 (See https://python3statement.org/ for more reasons). For next release we will keep the travis tests for Python 2 but will make them non necessary for merge in 2020. @@ -55,7 +54,7 @@ bring new features and solvers to the library. * Make doctest work on travis (PR #90) * Update documentation (PR #79, PR #84) * Solver for EMD in 1D (PR #89) -* Solvers for regularized unbalanced OT (PR #87) +* Solvers for regularized unbalanced OT (PR #87, PR#99) * Solver for Fused Gromov-Wasserstein (PR #86) * Add empirical Sinkhorn and empirical Sinkhorn divergences (PR #80) -- cgit v1.2.3