POT
POT copied to clipboard
[WIP] Restructure unbalanced OT module
Types of changes
This PR aims to improve the current module unbalanced.py on two aspects:
- The current module contains 3 seperate groups of unbalanced OT solvers: Sinkhorn, Majorization-Minimization and LBFGS-B. It is preferable to break these groups into seperate files/modules for easier maintenance.
- In the current Sinkhorn solver, the reference measure used in the regulazation is always fixed as $a b^T$ (for
reg_type=kl) or one-matrix (forreg_type=entropy). With trivial modification, we can allow for any nonnegative reference measure. This will be useful for theot.solve, since we consider a very generic unbalanced OT problem.
Major changes:
- The
reg_typeargument is removed from Sinkhorn solver and replace by the referencecin the regularization term (c = ab^Tby default) - Add
ot.unbalanced.lbfgsb_unbalanced2, which returns the UOT loss. This is consistent with almost all solvers in POT. - Remove option "entropy" for argument
reg_divinlbfgsb_unbalanced.
Motivation and context / Related issue
How has this been tested (if it applies)
PR checklist
- [x] I have read the CONTRIBUTING document.
- [x] The documentation is up-to-date with the changes I made (check build artifacts).
- [x] All tests passed, and additional code has been covered with new tests.
- [ ] I have added the PR and Issue fix to the RELEASES.md file.
Codecov Report
Attention: Patch coverage is 99.30556% with 4 lines in your changes missing coverage. Please review.
Project coverage is 96.88%. Comparing base (
bd56809) to head (ad2e6f8). Report is 1 commits behind head on master.
Additional details and impacted files
@@ Coverage Diff @@
## master #658 +/- ##
==========================================
+ Coverage 96.85% 96.88% +0.03%
==========================================
Files 88 93 +5
Lines 17910 18166 +256
==========================================
+ Hits 17346 17600 +254
- Misses 564 566 +2