summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Flamary <remi.flamary@gmail.com>2021-04-19 15:03:57 +0200
committerGitHub <noreply@github.com>2021-04-19 15:03:57 +0200
commitcd3ce6140d7a2dbe2bcf05927a8dd8289f4ce9e2 (patch)
treee39a2b00709c46c8b00772d1218f53fe33e59e11
parent2a3f2241951ea9cc044b4fba8a382b6ae9630513 (diff)
[MRG] Cleanup test warnings (#242)
* remove warnings in tests from docstrings * working tets for bregman implemneted methods * pep8
-rw-r--r--ot/da.py12
-rw-r--r--ot/dr.py2
-rw-r--r--ot/gpu/bregman.py2
-rw-r--r--ot/gromov.py20
-rw-r--r--ot/lp/cvx.py3
-rw-r--r--ot/optim.py4
-rw-r--r--test/test_bregman.py3
7 files changed, 23 insertions, 23 deletions
diff --git a/ot/da.py b/ot/da.py
index f1e4769..cdc747c 100644
--- a/ot/da.py
+++ b/ot/da.py
@@ -26,7 +26,7 @@ from .optim import gcg
def sinkhorn_lpl1_mm(a, labels_a, b, M, reg, eta=0.1, numItermax=10,
numInnerItermax=200, stopInnerThr=1e-9, verbose=False,
log=False):
- """
+ r"""
Solve the entropic regularization optimal transport problem with nonconvex
group lasso regularization
@@ -137,7 +137,7 @@ def sinkhorn_lpl1_mm(a, labels_a, b, M, reg, eta=0.1, numItermax=10,
def sinkhorn_l1l2_gl(a, labels_a, b, M, reg, eta=0.1, numItermax=10,
numInnerItermax=200, stopInnerThr=1e-9, verbose=False,
log=False):
- """
+ r"""
Solve the entropic regularization optimal transport problem with group
lasso regularization
@@ -245,7 +245,7 @@ def joint_OT_mapping_linear(xs, xt, mu=1, eta=0.001, bias=False, verbose=False,
verbose2=False, numItermax=100, numInnerItermax=10,
stopInnerThr=1e-6, stopThr=1e-5, log=False,
**kwargs):
- """Joint OT and linear mapping estimation as proposed in [8]
+ r"""Joint OT and linear mapping estimation as proposed in [8]
The function solves the following optimization problem:
@@ -434,7 +434,7 @@ def joint_OT_mapping_kernel(xs, xt, mu=1, eta=0.001, kerneltype='gaussian',
numItermax=100, numInnerItermax=10,
stopInnerThr=1e-6, stopThr=1e-5, log=False,
**kwargs):
- """Joint OT and nonlinear mapping estimation with kernels as proposed in [8]
+ r"""Joint OT and nonlinear mapping estimation with kernels as proposed in [8]
The function solves the following optimization problem:
@@ -645,7 +645,7 @@ def joint_OT_mapping_kernel(xs, xt, mu=1, eta=0.001, kerneltype='gaussian',
def OT_mapping_linear(xs, xt, reg=1e-6, ws=None,
wt=None, bias=True, log=False):
- """ return OT linear operator between samples
+ r""" return OT linear operator between samples
The function estimates the optimal linear operator that aligns the two
empirical distributions. This is equivalent to estimating the closed
@@ -1228,7 +1228,7 @@ class BaseTransport(BaseEstimator):
class LinearTransport(BaseTransport):
- """ OT linear operator between empirical distributions
+ r""" OT linear operator between empirical distributions
The function estimates the optimal linear operator that aligns the two
empirical distributions. This is equivalent to estimating the closed
diff --git a/ot/dr.py b/ot/dr.py
index 11d2e10..b7a1af0 100644
--- a/ot/dr.py
+++ b/ot/dr.py
@@ -109,7 +109,7 @@ def fda(X, y, p=2, reg=1e-16):
def wda(X, y, p=2, reg=1, k=10, solver=None, maxiter=100, verbose=0, P0=None):
- """
+ r"""
Wasserstein Discriminant Analysis [11]_
The function solves the following optimization problem:
diff --git a/ot/gpu/bregman.py b/ot/gpu/bregman.py
index 2e2df83..82f34f3 100644
--- a/ot/gpu/bregman.py
+++ b/ot/gpu/bregman.py
@@ -15,7 +15,7 @@ from . import utils
def sinkhorn_knopp(a, b, M, reg, numItermax=1000, stopThr=1e-9,
verbose=False, log=False, to_numpy=True, **kwargs):
- """
+ r"""
Solve the entropic regularization optimal transport on GPU
If the input matrix are in numpy format, they will be uploaded to the
diff --git a/ot/gromov.py b/ot/gromov.py
index 4427a96..8f457e9 100644
--- a/ot/gromov.py
+++ b/ot/gromov.py
@@ -19,7 +19,7 @@ from .optim import cg
def init_matrix(C1, C2, p, q, loss_fun='square_loss'):
- """Return loss matrices and tensors for Gromov-Wasserstein fast computation
+ r"""Return loss matrices and tensors for Gromov-Wasserstein fast computation
Returns the value of \mathcal{L}(C1,C2) \otimes T with the selected loss
function as the loss function of Gromow-Wasserstein discrepancy.
@@ -109,7 +109,7 @@ def init_matrix(C1, C2, p, q, loss_fun='square_loss'):
def tensor_product(constC, hC1, hC2, T):
- """Return the tensor for Gromov-Wasserstein fast computation
+ r"""Return the tensor for Gromov-Wasserstein fast computation
The tensor is computed as described in Proposition 1 Eq. (6) in [12].
@@ -262,7 +262,7 @@ def update_kl_loss(p, lambdas, T, Cs):
def gromov_wasserstein(C1, C2, p, q, loss_fun, log=False, armijo=False, **kwargs):
- """
+ r"""
Returns the gromov-wasserstein transport between (C1,p) and (C2,q)
The function solves the following optimization problem:
@@ -343,7 +343,7 @@ def gromov_wasserstein(C1, C2, p, q, loss_fun, log=False, armijo=False, **kwargs
def gromov_wasserstein2(C1, C2, p, q, loss_fun, log=False, armijo=False, **kwargs):
- """
+ r"""
Returns the gromov-wasserstein discrepancy between (C1,p) and (C2,q)
The function solves the following optimization problem:
@@ -420,7 +420,7 @@ def gromov_wasserstein2(C1, C2, p, q, loss_fun, log=False, armijo=False, **kwarg
def fused_gromov_wasserstein(M, C1, C2, p, q, loss_fun='square_loss', alpha=0.5, armijo=False, log=False, **kwargs):
- """
+ r"""
Computes the FGW transport between two graphs see [24]
.. math::
@@ -496,7 +496,7 @@ def fused_gromov_wasserstein(M, C1, C2, p, q, loss_fun='square_loss', alpha=0.5,
def fused_gromov_wasserstein2(M, C1, C2, p, q, loss_fun='square_loss', alpha=0.5, armijo=False, log=False, **kwargs):
- """
+ r"""
Computes the FGW distance between two graphs see [24]
.. math::
@@ -574,7 +574,7 @@ def fused_gromov_wasserstein2(M, C1, C2, p, q, loss_fun='square_loss', alpha=0.5
def entropic_gromov_wasserstein(C1, C2, p, q, loss_fun, epsilon,
max_iter=1000, tol=1e-9, verbose=False, log=False):
- """
+ r"""
Returns the gromov-wasserstein transport between (C1,p) and (C2,q)
(C1,p) and (C2,q)
@@ -681,7 +681,7 @@ def entropic_gromov_wasserstein(C1, C2, p, q, loss_fun, epsilon,
def entropic_gromov_wasserstein2(C1, C2, p, q, loss_fun, epsilon,
max_iter=1000, tol=1e-9, verbose=False, log=False):
- """
+ r"""
Returns the entropic gromov-wasserstein discrepancy between the two measured similarity matrices
(C1,p) and (C2,q)
@@ -747,7 +747,7 @@ def entropic_gromov_wasserstein2(C1, C2, p, q, loss_fun, epsilon,
def entropic_gromov_barycenters(N, Cs, ps, p, lambdas, loss_fun, epsilon,
max_iter=1000, tol=1e-9, verbose=False, log=False, init_C=None):
- """
+ r"""
Returns the gromov-wasserstein barycenters of S measured similarity matrices
(Cs)_{s=1}^{s=S}
@@ -857,7 +857,7 @@ def entropic_gromov_barycenters(N, Cs, ps, p, lambdas, loss_fun, epsilon,
def gromov_barycenters(N, Cs, ps, p, lambdas, loss_fun,
max_iter=1000, tol=1e-9, verbose=False, log=False, init_C=None):
- """
+ r"""
Returns the gromov-wasserstein barycenters of S measured similarity matrices
(Cs)_{s=1}^{s=S}
diff --git a/ot/lp/cvx.py b/ot/lp/cvx.py
index 8e763be..869d450 100644
--- a/ot/lp/cvx.py
+++ b/ot/lp/cvx.py
@@ -27,7 +27,7 @@ def scipy_sparse_to_spmatrix(A):
def barycenter(A, M, weights=None, verbose=False, log=False, solver='interior-point'):
- """Compute the Wasserstein barycenter of distributions A
+ r"""Compute the Wasserstein barycenter of distributions A
The function solves the following optimization problem [16]:
@@ -76,7 +76,6 @@ def barycenter(A, M, weights=None, verbose=False, log=False, solver='interior-po
.. [16] Agueh, M., & Carlier, G. (2011). Barycenters in the Wasserstein space. SIAM Journal on Mathematical Analysis, 43(2), 904-924.
-
"""
if weights is None:
diff --git a/ot/optim.py b/ot/optim.py
index 1902907..abe9e6a 100644
--- a/ot/optim.py
+++ b/ot/optim.py
@@ -139,7 +139,7 @@ def solve_linesearch(cost, G, deltaG, Mi, f_val,
def cg(a, b, M, reg, f, df, G0=None, numItermax=200, numItermaxEmd=100000,
stopThr=1e-9, stopThr2=1e-9, verbose=False, log=False, **kwargs):
- """
+ r"""
Solve the general regularized OT problem with conditional gradient
The function solves the following optimization problem:
@@ -278,7 +278,7 @@ def cg(a, b, M, reg, f, df, G0=None, numItermax=200, numItermaxEmd=100000,
def gcg(a, b, M, reg1, reg2, f, df, G0=None, numItermax=10,
numInnerItermax=200, stopThr=1e-9, stopThr2=1e-9, verbose=False, log=False):
- """
+ r"""
Solve the general regularized OT problem with the generalized conditional gradient
The function solves the following optimization problem:
diff --git a/test/test_bregman.py b/test/test_bregman.py
index 331acd3..1ebd21f 100644
--- a/test/test_bregman.py
+++ b/test/test_bregman.py
@@ -321,8 +321,9 @@ def test_implemented_methods():
# make dists unbalanced
b = ot.utils.unif(n)
A = rng.rand(n, 2)
+ A /= A.sum(0, keepdims=True)
M = ot.dist(x, x)
- epsilon = 1.
+ epsilon = 1.0
for method in IMPLEMENTED_METHODS:
ot.bregman.sinkhorn(a, b, M, epsilon, method=method)