Skip to content

Commit a5d5501

Browse files
committed
update release file
1 parent cb29080 commit a5d5501

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

RELEASES.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
*December 2023*
55

66
This new release contains several new features and bug fixes. Among the new features
7-
we have a new solver for estimation of nearest Brenier potentials (SSNB) that can be used for O mapping estimation (on small problems), new Bregman Alternated Projected Gradient solvers for GW and FGW, and new solvers for Bures-Wasserstein barycenters. Finally we have a new exact line-search for (F)GW solvers with KL loss that can be used to improve the convergence of the solvers.
7+
we have a new solver for estimation of nearest Brenier potentials (SSNB) that can be used for OT mapping estimation (on small problems), new Bregman Alternated Projected Gradient solvers for GW and FGW, and new solvers for Bures-Wasserstein barycenters. We also provide a first solver for Low Rank Sinkhorn that will be ussed to provide low rak OT extensions in the next releases. Finally we have a new exact line-search for (F)GW solvers with KL loss that can be used to improve the convergence of the solvers.
88

9-
We also have a new `LazyTensor` class that can be used to model OT plans and low rank tensors in large scale OT. This class is used y the new wrapper for `geomloss` Sinkhorn solver on empirical samples that can lead to x10/x100 speedups on CPU or GPU and have a lazy implementation that allows solving very large problems of a few millions samples.
9+
We also have a new `LazyTensor` class that can be used to model OT plans and low rank tensors in large scale OT. This class is used to return the plan for the new wrapper for `geomloss` Sinkhorn solver on empirical samples that can lead to x10/x100 speedups on CPU or GPU and have a lazy implementation that allows solving very large problems of a few millions samples.
1010

1111
We also have a new API for solving OT problems from empirical samples with `ot.solve_sample` Finally we have a new API for Gromov-Wasserstein solvers with `ot.solve_gromov` function that centralizes most of the (F)GW methods with unified notation. Some example of how to use the new API below:
1212

@@ -22,6 +22,12 @@ sol = ot.solve_sample(xs, xt, reg= 1, metric='euclidean') # sinkhorn with euclid
2222

2323
sol = ot.solve_sample(xs, xt, reg= 1, method='geomloss') # faster sinkhorn solver on CPU/GPU
2424

25+
sol = ot.solve_sample(x,x2, method='factored', rank=10) # compute factored OT
26+
27+
sol = ot.solve_sample(x,x2, method='lowrank', rank=10) # compute lowrank sinkhorn OT
28+
29+
value_bw = ot.solve_sample(xs, xt, method='gaussian').value # Bures-Wasserstein distance
30+
2531
# Solve GW problem
2632
Cs, Ct = ot.dist(xs, xs), ot.dist(xt, xt) # compute cost matrices
2733
sol = ot.solve_gromov(Cs,Ct) # Exact GW between samples with uniform weights
@@ -30,21 +36,24 @@ sol = ot.solve_gromov(Cs,Ct) # Exact GW between samples with uniform weights
3036
M = ot.dist(xs, xt) # compute cost matrix
3137

3238
# Exact FGW between samples with uniform weights
33-
sol = ot.solve_gromov(Cs, Ct, M, loss='KL') # FGW with KL data fitting
39+
sol = ot.solve_gromov(Cs, Ct, M, loss='KL', alpha=0.7) # FGW with KL data fitting
3440

3541

3642
# recover solutions objects
3743
P = sol.plan # OT plan
3844
u, v = sol.potentials # dual variables
3945
value = sol.value # OT value
4046

47+
# for GW and FGW
48+
value_linear = sol.value_linear # linear part of the loss
49+
value_quad = sol.value_quad # quadratic part of the loss
4150

4251
```
4352

44-
Users are encouraged to use the new API but it might still be subjects to small changes before the release of POT 1.0 .
45-
This class is used in the new BAPG solvers for GW and FGW that can be used to solve large scale OT problems with a small memory footprint.
53+
Users are encouraged to use the new API (it is much simpler) but it might still be subjects to small changes before the release of POT 1.0 .
54+
4655

47-
We also fixed a number of issues, the most pressing being a problem of GPU memory allocation when pytorch is installed that will not happen now thanks to Lazy initialization. We now also have the possibility to deactivate some backends which prvent python from importing them using environment variables.
56+
We also fixed a number of issues, the most pressing being a problem of GPU memory allocation when pytorch is installed that will not happen now thanks to Lazy initialization of the backends. We now also have the possibility to deactivate some backends using environment which prevents POT from importing them and can lead to large import speedup.
4857

4958

5059
#### New features

0 commit comments

Comments
 (0)