Releases: ott-jax/ott
Releases · ott-jax/ott
0.5.0
What's Changed
- add glossary by @marcocuturi in #594
- introduce
sinkdiv
simplified API, expand glossary with sinkhorn divergence and LR sinkhorn by @marcocuturi in #596 - propagate
sinkdiv
to Monge gap implementation by @marcocuturi in #597 - add Hungarian solver from optax by @marcocuturi in #598
- Feature/refactor initializers by @michalk8 in #599
- Fix Wrong implementation of u_t(x|z) in Brownian Bridge by @selmanozleyen in #600
- Fix CI by @michalk8 in #601
- Feature/refactor relative epsilon by @michalk8 in #602
- Remove source/target masks by @michalk8 in #603
Full Changelog: 0.4.9...0.5.0
0.4.9
What's Changed
- refactor sinkhorn_divergence by @marcocuturi in #577
- automatic scaling of
epsilon
usingstd
instead ofmean
by default. by @marcocuturi in #578 - Feature/refactor was solver by @michalk8 in #580
- Fix dtype promotion in
Sinkhorn
by @michalk8 in #583 - expose
SinkhornDivergenceOutput
by @marcocuturi in #584 - Switch to
jax.random.key
by @michalk8 in #586 - fix default for intermediate quadratic layers in ICNN by @marcocuturi in #587
- Enable 3.13 CI by @michalk8 in #589
- Feature/batched vmap by @michalk8 in #588
Full Changelog: 0.4.8...0.4.9
OTT 0.4.8
What's Changed
- Fix low-rank convergence criterion by @michalk8 in #547
- Fix/quadratic pytree by @michalk8 in #555
- Fix/gw to lr by @michalk8 in #558
- TI transport map by @michalk8 in #559
- Update tutorial structure by @michalk8 in #560
- Fix
Grid.prepare_divergences
by @michalk8 in #563 - Raise error when instatiating cost/kernel for a grid by @michalk8 in #565
- correct convergence criterion for GW by @marcocuturi in #566
- Feature/progot by @michalk8 in #567
- Fix/univariate non ti by @michalk8 in #569
- sink div for LR by @marcocuturi in #568
- Add tutorial for unbalanced OT by @nvesseron in #291
- Edits to ProgOT by @pkassraie in #570
- Feature/update progot by @michalk8 in #571
- update mm-sink tutorial and plot by @zoepiran in #572
- Feature/update prox by @michalk8 in #575
- implements sliced W by @marcocuturi in #576
Full Changelog: 0.4.7...0.4.8
OTT 0.4.7
What's Changed
- add dropout to VelocityField and OTFM/GENOT by @MUCDK in #521
- Update icnn.py by @marcocuturi in #524
- Update Codecov Action to v4 by @michalk8 in #523
- Add h-transform for TI costs by @michalk8 in #525
- Update univariate.py by @marcocuturi in #527
- Fix/h legendre tests by @michalk8 in #529
- Update costs.py by @marcocuturi in #532
- Debiased property change by @michalk8 in #536
- Don't stop grads w.r.t. the parametrized costs by @michalk8 in #544
- univariate dual vectors for arbitrary sizes by @marcocuturi in #505
- Fix low-rank convergence criterion by @michalk8 in #547
- Fixing typos in documentation by @pkassraie in #548
- add MMSinkhorn solver by @marcocuturi in #549
- Force ICNN to adopt default initialization of its own layers by @Algue-Rythme in #551
- Deprecate Python 3.8 by @michalk8 in #554
- New neural OT solver ENOT by @nazarblch in #503
- Refactor regularized TI costs by @michalk8 in #553
New Contributors
- @Algue-Rythme made their first contribution in #551
- @nazarblch made their first contribution in #503
Full Changelog: 0.4.6...0.4.7
OTT 0.4.6
What's Changed
- Enable M1 runner by @michalk8 in #486
- Potentials as tuple by @michalk8 in #488
- Remove
bool
option forscale_cost
by @michalk8 in #492 - Use more iterations for LR-GW by @michalk8 in #494
- update sinhorn divergence gradient flow nb by @marcocuturi in #497
- add barycenter operator for (convex) translation invariant costs by @marcocuturi in #498
- Addition of gangbo-mccann map estimators using twist operator by @marcocuturi in #500
- Add sparse Chebyshev approximation by @guillaumehu in #502
- Fix/io callback by @michalk8 in #506
- Maint/third lower bound by @michalk8 in #507
- Remove epsilon scheduler in GW by @michalk8 in #508
- Fix SCOT tutorial imports and data by @michalk8 in #511
- restructuring neural models + addition of OT-FM and GENOT by @MUCDK in #468
- compute_sparse_laplacian gives int32 vs int64 index mismatch by @selmanozleyen in #510
- Update One_Sinkhorn.ipynb by @pkassraie in #515
- Update actions' versions by @michalk8 in #516
- Fix/batched non sym cost by @michalk8 in #518
- bug fix: avoid mixing up linear and quadratic in genot by @soerenab in #517
New Contributors
- @selmanozleyen made their first contribution in #510
- @pkassraie made their first contribution in #515
- @soerenab made their first contribution in #517
Full Changelog: 0.4.5...0.4.6
Neural module refactoring
What's Changed
- Re-run and refactoring of some docs/tutorials + minor changes by @marcocuturi in #431
- Feature/quadratic solve by @michalk8 in #433
- Fix
n_iters
by @michalk8 in #437 - Fix/rank2 init by @michalk8 in #442
- nn.dataset.GaussianMixture: minor fix to the docstring and standard deviation parameter name by @bamos in #445
- introduce multivariate cdf / quantiles by @marcocuturi in #447
- Feature/update jax version by @michalk8 in #448
- Histogram Transport Implementation by @Daniel-Packer in #444
- Doc refresh by @marcocuturi in #450
- Fix/jax prng deprecation by @michalk8 in #455
- Added CDF distance to Univariate Solver by @Daniel-Packer in #451
- Use PyPI trusted publishers by @michalk8 in #459
- first lb -> third lb by @Daniel-Packer in #462
- Restructure neural module by @michalk8 in #466
- refactoring
UnivariateSolver
by @marcocuturi in #472 - Feature/geodesic sinkhorn by @guillaumehu in #457
- Enable 3.12 CI by @michalk8 in #475
- Feature/apply lse mode by @michalk8 in #474
- Fix/neural docs by @michalk8 in #473
- Add quadratic layers and enhance ICNNs, update tutorial by @nvesseron in #477
- Fix heat scaling by @guillaumehu in #481
- Add low-rank kernel geometry by @michalk8 in #440
New Contributors
- @Daniel-Packer made their first contribution in #444
- @guillaumehu made their first contribution in #457
- @nvesseron made their first contribution in #477
Full Changelog: 0.4.4...0.4.5
Unbalanced low-rank Gromov-Wasserstein
What's Changed
- introduce new
norm
operator that can differentiate throughlambda x: norm(x-x)
+ lighter tests across the board by @marcocuturi in #411 - Feature/better io callbacks by @michalk8 in #413
- Feature/optional dependencies by @michalk8 in #412
- Update pre-commits by @michalk8 in #416
- Feature/move solve by @michalk8 in #418
- Feature/lineax ridge by @michalk8 in #424
- Feature/ulrgw by @michalk8 in #410
Full Changelog: 0.4.3...0.4.4
Add top-k mask and some minor fixes
What's Changed
- A few changes to increase Coverage by @marcocuturi in #390
- rename
ent_reg_cost
in sinkhorn solver by @marcocuturi in #391 - Increase coverage of NN modules by including init in tests by @marcocuturi in #392
- add tests for plots in
potentials
by @marcocuturi in #393 - test
Plot
class intools
module to increase coverage by @marcocuturi in #394 - Add soft
topk_mask
operator, fixranks
docs and tests by @marcocuturi in #396 - Add
relative_epsilon
option toGromovWasserstein
by @michalk8 in #355 - [ENH]: Fix misc typos in soft_sort doc by @pierreablin in #397
- Update docs by @michalk8 in #398
- add ability to add titles on animation plots by @marcocuturi in #400
- Update contributing visibility by @michalk8 in #399
- update nb by @marcocuturi in #403
- Fix not being able to jit the soft quantile by @michalk8 in #408
- Test
default_progress_fn
, skiptypes.py
by @michalk8 in #404
Full Changelog: 0.4.2...0.4.3
Unbalanced LR Sinkhorn + New MBO Estimators + minor fixes
What's Changed
- Add a tuto about sparse monge displacements by @pierreablin in #374
- introduce
ent_reg_cost
/kl_reg_cost
in Sinkhorn to clarify which is returned to the user inSinkhornOutput
objects. by @marcocuturi in #376 - more precise pydocs for #376 by @marcocuturi in #377
- Update sinkhorn.py by @marcocuturi in #378
- Compute multiple soft-quantiles in one execution without using
vmap
by @marcocuturi in #382 - incorporate feedback in #382 by @marcocuturi in #385
- Update soft_sort.py by @marcocuturi in #387
- Add elastic-net type costs with an orthogonal linear transformation of the input before it is fed into the regularizer by @michalk8 in #383
- Add monge gap by @theouscidda6 in #361
- Feature/unbalanced LR sinkhorn by @michalk8 in #379
- changes in definition of Monge gap by @marcocuturi in #389
- fix #375,
converged
flag when predefined number of iterations. by @marcocuturi in #386
Full Changelog: 0.4.1...0.4.2
0.4.1 Various new features (kernel steps for LR Sinkhon, lineax implicit diff), solvers must now be jitted.
Highlights:
- reformatted tutorial NBs
- progressbars for Sinkhorn
- low-rank Sinkhorn solvers can run in kernel mode
discrete_barycenter
is refactored using the Solver/Problem model, rather than a simple function.- soft-DTW added as a cost function.
- Sparsity inducing (in displacements) costs, see https://arxiv.org/abs/2302.04065
What's Changed
- Fix typo: Wasserstein-4 -> Wasserstein-2 by @bamos in #249
- Fix/warnings lint by @michalk8 in #260
- Addresses #229: Copyrights unification by @AWehenkel in #261
- fixed the docs about the implicit_diff argument by @gjhuizing in #270
- Correct package requirements for tests. by @AWehenkel in #271
- Add pre-commit CI cache by @michalk8 in #279
- Fix flake8
D10{1,2,3}
errors by @giovp in #269 - Added CostFn and Plot to the documentation by @gjhuizing in #288
- add
primal_cost
property to output of GW, to compute cost without any regularization. by @marcocuturi in #286 - add
ruff
and remove redundant pre-commits by @giovp in #278 - Remove
matplotlib
dependency by @michalk8 in #304 - Fix/epsilon regularization by @michalk8 in #310
- Address #252 - Make soft ranking notebook self contained by @AWehenkel in #301
- Fix small TODOs by @michalk8 in #311
- Add CI tests for upstream JAX by @michalk8 in #313
- Subsample initializer by @JTT94 in #309
- feat: add progress reporting to Sinkhorn by @bosr in #228
- Refactor
discrete_barycenter
as solver, cf. issue #255 by @marcocuturi in #316 - Make random seeding consistent with PRNG keys everywhere instead of seeds by @othmanesebbouh in #290
- Add
Soft-DTW
cost function by @michalk8 in #318 - Fix/sinkdiv hessian by @michalk8 in #321
- Enable
D*
checks by @michalk8 in #319 - Fix spelling by @michalk8 in #323
- Remove ignoring passed params in ICNN by @michalk8 in #325
- Fix spelling by @michalk8 in #326
- neuraldual: fix issues with objective-based amortization and no-fine-tuning by @bamos in #327
- Parameter to make line strength proportional to coupling strength in Plot by @gjhuizing in #280
- Remove sparse option in
Graph
geometry by @michalk8 in #329 - gh: refactor community files by @SauravMaheshkar in #331
- Have a simpler "getting started" notebook by @pierreablin in #296
- update NBs by @marcocuturi in #332
- Docs/fix minor issues by @michalk8 in #334
- Small fix in soft_sort.quantile docstring by @pierreablin in #336
- Fix/jit inside jit by @michalk8 in #335
- typos by @marcocuturi in #339
- Remove assertions in cost functions by @michalk8 in #340
- Fix
EntropicPotentials
's test by @michalk8 in #343 - Added tutorial on Sinkhorn divergence by @gjhuizing in #282
- Pin
chex
version in GPU CI by @michalk8 in #346 - Feature/unscaled gw cost by @michalk8 in #348
- Fix typos in notebook by @michalk8 in #350
- docs/progress bar by @bosr in #347
- Fix/default prng by @michalk8 in #353
- tracking progress of gromov-wasserstein by @bosr in #351
- Store individual costs to in the GW barycenter by @michalk8 in #354
- Update brain notebook by @michalk8 in #358
- add dtype to kernel by @MUCDK in #365
- Neural OT notebook: add more 2d datasets by @bamos in #303
- New kernel lr by @meyerscetbon in #324
- Fine grained control of Bures barycenters by @marcocuturi in #366
- use lineax to solve linear system in implicit diff by @marcocuturi in #370
- Fix .readthedocs.yaml by @michalk8 in #372
New Contributors
- @AWehenkel made their first contribution in #261
- @gjhuizing made their first contribution in #270
- @giovp made their first contribution in #269
- @bosr made their first contribution in #228
- @othmanesebbouh made their first contribution in #290
- @pierreablin made their first contribution in #296
Full Changelog: 0.4.0...0.4.1