Skip to content

Commit

Permalink
[MRG] Release 0.9.5 (#685)
Browse files Browse the repository at this point in the history
* merge

* release 0.9.5

* fix
  • Loading branch information
cedricvincentcuaz authored Nov 6, 2024
1 parent 97d9bcc commit 1164515
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 4 deletions.
9 changes: 8 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
# Releases

## 0.9.5dev
## 0.9.5

*November 2024*

This new release contains several new features, starting with
a novel [Gaussian Mixture Model Optimal Transport (GMM-OT)](https://pythonot.github.io/master/gen_modules/ot.gmm.html#examples-using-ot-gmm-gmm-ot-apply-map) solver to compare GMM while enforcing the transport plan to remain a GMM, that benefits from a closed-form solution making it practical for high-dimensional matching problems. We also extended our general unbalanced OT solvers to support any non-negative reference measure in the regularization terms, before adding the novel [translation invariant UOT](https://pythonot.github.io/master/auto_examples/unbalanced-partial/plot_conv_sinkhorn_ti.html) solver showcasing a higher convergence speed. We also implemented several new solvers and enhanced existing ones to perform OT across spaces. These include a [semi-relaxed FGW barycenter](https://pythonot.github.io/master/auto_examples/gromov/plot_semirelaxed_gromov_wasserstein_barycenter.html) solver, coupled with new initialization heuristics for the inner divergence computation, to perform graph partitioning or dictionary learning. Followed by novel [unbalanced FGW and Co-optimal transport](https://pythonot.github.io/master/auto_examples/others/plot_outlier_detection_with_COOT_and_unbalanced_COOT.html) solvers to promote robustness to outliers in such matching problems. And we finally updated the implementation of partial GW now supporting asymmetric structures and the KL divergence, while leveraging a new generic conditional gradient solver for partial transport problems enabling significant speed improvements. These latest updates required some modifications to the line search functions of our generic conditional gradient solver, paving the way for future improvements to other GW-based solvers. Last but not least, we implemented a pre-commit scheme to automatically correct common programming mistakes likely to be made by our future contributors.

This release also contains few bug fixes, concerning the support of any metric in `ot.emd_1d` / `ot.emd2_1d`, and the support of any weights in `ot.gaussian`.

#### Breaking change
- Custom functions provided as parameter `line_search` to `ot.optim.generic_conditional_gradient` must now have the signature `line_search(cost, G, deltaG, Mi, cost_G, df_G, **kwargs)`, adding as input `df_G` the gradient of the regularizer evaluated at the transport plan `G`. This change aims at improving speed of solvers having quadratic polynomial functions as regularizer such as the Gromov-Wassertein loss (PR #663).

Expand Down
2 changes: 1 addition & 1 deletion ot/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
# utils functions
from .utils import dist, unif, tic, toc, toq

__version__ = "0.9.5dev0"
__version__ = "0.9.5"

__all__ = [
"emd",
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@
description="Python Optimal Transport Library",
long_description=README,
long_description_content_type="text/markdown",
author="Remi Flamary, Nicolas Courty, POT Contributors",
author_email="[email protected], [email protected]",
author="Remi Flamary, Nicolas Courty, Cédric Vincent-Cuaz, POT Contributors",
author_email="[email protected], [email protected], [email protected]",
url="https://github.com/PythonOT/POT",
packages=find_packages(exclude=["benchmarks"]),
ext_modules=cythonize(
Expand Down

0 comments on commit 1164515

Please sign in to comment.