POT
POT copied to clipboard
POT : Python Optimal Transport
### Bug Description When calling `ot.dist` with metric set to hamming an AttributeError is thrown from within `scipy.cdist` ### To Reproduce (tested using python 3.10, ot version 0.8.2 and scipy...
## 🚀 Feature I was wondering if it would be possible to do the OT matrix computation (ot.emd) using sparse matrices, (eg: https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_array.html#scipy.sparse.coo_array) where only the distances between pairs of...
Hi, I've just come across your library while studying Wasserstein distances and OT, and was hoping to compute some simple examples like the one shown in Lilian Weng's blog post:...
## Types of changes This is a first shot for intializing empirical sinkhorn but the computational gain is not very clear on tests I did locally. The following code ```python...
## Types of changes This PR presents a vectorized implementation of LpL1 transport algorithms for domain adaptation, along with all the requisite modifications to ensure compatibility of the `ot.da` module...
## Types of changes Implementation of first solvers for the quantized Fused Gromov-Wasserstein (qFGW) distance. - creation of new files `ot/gromov/_quantized.py` and `test/gromov/test_quantized.py` . - `quantized_fused_gromov_wasserstein_partitioned` : main function to...
This feature arguably falls outside the scope of the library - it is really a problem which is 2 dependencies down the food chain - but I will suggest it...
## Types of changes I modify the code ot.partial.partial_gromov_wasserstein ## Motivation and context / Related issue There seems to be an inconsistency between ot.partial.partial_gromov_wasserstein and the line search section in...
## Describe the bug As my datapoints are empirical distributions I want to use the Wasserstein distance as a loss function over a batch of shape `(n_batch, n_points, dimension)`. Standard...
## Describe the bug `ot.utils.check_params` is used rather heavily throughout `ot.da` functions. The function itself checks for `None`(s) in the input and returns `False` if at least one was spotted....