summaryrefslogtreecommitdiff
path: root/ot/bregman.py
AgeCommit message (Collapse)Author
2018-09-24remove variable i initializationRémi Flamary
2018-09-24correct reference number in docRémi Flamary
2018-09-24Merge readme with masterRémi Flamary
2018-09-24remove i+1Rémi Flamary
2018-09-24implement for loopRémi Flamary
2018-09-24remove unused variableRémi Flamary
2018-09-24add contributorRémi Flamary
2018-09-24remove @ for python compatibility+ comments alexandreRémi Flamary
2018-09-24correct if error bugRémi Flamary
2018-09-24adding greenkhornalain
2018-09-07whitetrail pep8Nicolas Courty
2018-09-07stabThr and pep8Nicolas Courty
2018-09-07pep8 fixed (contd)Nicolas Courty
2018-09-07pep8 normalizationNicolas Courty
2018-09-07Wasserstein convolutional barycenterNicolas Courty
2018-07-24ensum tets marginals sinkhornRémi Flamary
2018-07-24final makefile benchRémi Flamary
2018-07-24cancel einsumRémi Flamary
2018-07-24pb indexRémi Flamary
2018-07-24correction sizeRémi Flamary
2018-07-24test eisum instead of dotRémi Flamary
2018-07-24pep8 all the wayRémi Flamary
2018-07-24speedup einsum constraint violationRémi Flamary
2018-07-16Add comment & fix flake8 errorLeoGautheron
2018-07-11Speed-up SinkhornLeoGautheron
Speed-up in 3 places: - the computation of pairwise distance is faster with sklearn.metrics.pairwise.euclidean_distances - faster computation of K = np.exp(-M / reg) - faster computation of the error every 10 iterations Example with this little script: import time import numpy as np import ot rng = np.random.RandomState(0) transport = ot.da.SinkhornTransport() time1 = time.time() Xs, ys, Xt = rng.randn(10000, 100), rng.randint(0, 2, size=10000), rng.randn(10000, 100) transport.fit(Xs=Xs, Xt=Xt) time2 = time.time() print("OT Computation Time {:6.2f} sec".format(time2-time1)) transport = ot.da.SinkhornLpl1Transport() transport.fit(Xs=Xs, ys=ys, Xt=Xt) time3 = time.time() print("OT LpL1 Computation Time {:6.2f} sec".format(time3-time2)) Before OT Computation Time 19.93 sec OT LpL1 Computation Time 133.43 sec After OT Computation Time 7.55 sec OT LpL1 Computation Time 82.25 sec
2018-05-29update documentation for barycenter functionRémi Flamary
2018-05-11pep8Rémi Flamary
2018-05-11update documentation in bregmanRémi Flamary
2018-03-21add linear mapping test + autopep8Rémi Flamary
2017-07-26valid flake8Rémi Flamary
2017-07-26pep8Rémi Flamary
2017-07-26add license and authors on all modulesRémi Flamary
2017-07-20pep8Alexandre Gramfort
2017-07-07add sinkhorbn2 +v3Rémi Flamary
2017-07-03debug bregman stabilizedRémi Flamary
2017-06-20add clean zeros function for sparse distributionsRémi Flamary
2017-06-13implement paralell sinkhorn stabilizedRémi Flamary
2017-06-13implement paralell sinkhornRémi Flamary
2017-06-13make sinkhorn more general with method selectionRémi Flamary
2017-06-09add doc and correct encodingRémi Flamary
2017-04-20sinkhorn GPU implementationLeo gautheron
2017-04-18little cleanup sinkhornLeo gautheron
2017-04-18Performance improvement sinkhornLeo gautheron
Doing the computation this way is equivalent and allows to reduce the space complexity required from O(max(a, b)^2) to O(a*b) (especially usefull to transport a small number of sources example to a lot of target) This also allows to decrease the computation time.
2017-04-13update bregman fileLeo gautheron
- change commented prints to python3 compatible syntax - Correct issue that could cause the sinkhorn algo to stop with u and v containing nan/infinite numbers: - Assign uprev and vprev before changing u and v. - Then update u and v. - Then check if u and v contain nan, but ALSO infinite values. - if there are issues, then display error (with 2 r, not 3 :p) along with the iteration number (there may have errors at iteration 0)
2017-02-07log return for sinkhornRémi Flamary
2017-01-05more efficient sinkhornRémi Flamary
2016-11-08travis CIRémi Flamary
2016-11-07v0.1.11Rémi Flamary
2016-11-07add log and epsilon scaling stabilizationsRémi Flamary
2016-11-04doc nonlinear mapping estimationRémi Flamary