Skip to content

0.8.2

Compare
Choose a tag to compare
@rflamary rflamary released this 21 Apr 16:31
· 181 commits to master since this release
eccb138

This releases introduces several new notable features. The less important but most exiting one being that we now have a logo for the toolbox (color and dark background) :

This logo is generated using with matplotlib and using the solution of an OT problem provided by POT (with ot.emd). Generating the logo can be done with a simple python script also provided in the documentation gallery.

New OT solvers include Weak OT and OT with factored coupling that can be used on large datasets. The Majorization Minimization solvers for non-regularized Unbalanced OT are now also available. We also now provide an implementation of GW and FGW unmixing and dictionary learning. It is now possible to use autodiff to solve entropic an quadratic regularized OT in the dual for full or stochastic optimization thanks to the new functions to compute the dual loss for entropic and quadratic regularized OT and reconstruct the OT plan on part or all of the data. They can be used for instance to solve OT problems with stochastic gradient or for estimating the dual potentials as neural networks.

On the backend front, we now have backend compatible functions and classes in the domain adaptation ot.da and unbalanced OT ot.unbalanced modules. This means that the DA classes can be used on tensors from all compatible backends. The free support Wasserstein barycenter solver is now also backend compatible.

Finally we have worked on the documentation to provide an update of existing examples in the gallery and and several new examples including GW dictionary learning and weak Optimal Transport.

New features

  • Remove deprecated ot.gpu submodule (PR #361)
  • Update examples in the gallery (PR #359)
  • Add stochastic loss and OT plan computation for regularized OT and
    backend examples(PR #360)
  • Implementation of factored OT with emd and sinkhorn (PR #358)
  • A brand new logo for POT (PR #357)
  • Better list of related examples in quick start guide with minigallery (PR #334)
  • Add optional log-domain Sinkhorn implementation in WDA to support smaller values
    of the regularization parameter (PR #336)
  • Backend implementation for ot.lp.free_support_barycenter (PR #340)
  • Add weak OT solver + example (PR #341)
  • Add backend support for Domain Adaptation and Unbalanced solvers (PR #343)
  • Add (F)GW linear dictionary learning solvers + example (PR #319)
  • Add links to related PR and Issues in the doc release page (PR #350)
  • Add new minimization-maximization algorithms for solving exact Unbalanced OT + example (PR #362)

Closed issues

  • Fix mass gradient of ot.emd2 and ot.gromov_wasserstein2 so that they are
    centered (Issue #364, PR #363)
  • Fix bug in instantiating an autograd function ValFunction (Issue #337,
    PR #338)
  • Fix POT ABI compatibility with old and new numpy (Issue #346, PR #349)
  • Warning when feeding integer cost matrix to EMD solver resulting in an integer transport plan (Issue #345, PR #343)
  • Fix bug where gromov_wasserstein2 does not perform backpropagation with CUDA
    tensors (Issue #351, PR #352)