summaryrefslogtreecommitdiff
path: root/ot/gpu
diff options
context:
space:
mode:
authorRĂ©mi Flamary <remi.flamary@gmail.com>2018-10-03 08:38:11 +0200
committerGitHub <noreply@github.com>2018-10-03 08:38:11 +0200
commitfeaecbe2965fa22cdf964c2e869fe56d6ce392e9 (patch)
treee591f016a12b00c17a065b4e5881b0d5c24135fd /ot/gpu
parent8f6c45534dcdd6e8f80a31205be28481fc79c533 (diff)
parent27f0a9fe625f6fa8123e0e7364a4c0c0e10d5702 (diff)
Merge pull request #63 from rflamary/prV0.5
[MRG] Release 0.5
Diffstat (limited to 'ot/gpu')
-rw-r--r--ot/gpu/__init__.py17
-rw-r--r--ot/gpu/da.py3
2 files changed, 12 insertions, 8 deletions
diff --git a/ot/gpu/__init__.py b/ot/gpu/__init__.py
index 0187a4f..deda6b1 100644
--- a/ot/gpu/__init__.py
+++ b/ot/gpu/__init__.py
@@ -9,15 +9,17 @@ By default, the functions in this module accept and return numpy arrays
in order to proide drop-in replacement for the other POT function but
the transfer between CPU en GPU comes with a significant overhead.
-In order to get the best erformances, we recommend to given only cupy
+In order to get the best erformances, we recommend to give only cupy
arrays to the functions and desactivate the conversion to numpy of the
result of the function with parameter ``to_numpy=False``.
-
-
-
"""
+# Author: Remi Flamary <remi.flamary@unice.fr>
+# Leo Gautheron <https://github.com/aje>
+#
+# License: MIT License
+
from . import bregman
from . import da
from .bregman import sinkhorn
@@ -27,10 +29,9 @@ from . import utils
from .utils import dist, to_gpu, to_np
-# Author: Remi Flamary <remi.flamary@unice.fr>
-# Leo Gautheron <https://github.com/aje>
-#
-# License: MIT License
+
+
__all__ = ["utils", "dist", "sinkhorn",
"sinkhorn_lpl1_mm", 'bregman', 'da', 'to_gpu', 'to_np']
+
diff --git a/ot/gpu/da.py b/ot/gpu/da.py
index 6aba29c..4a98038 100644
--- a/ot/gpu/da.py
+++ b/ot/gpu/da.py
@@ -10,10 +10,12 @@ Domain adaptation with optimal transport with GPU implementation
#
# License: MIT License
+
import cupy as np # np used for matrix computation
import cupy as cp # cp used for cupy specific operations
import numpy as npp
from . import utils
+
from .bregman import sinkhorn
@@ -131,6 +133,7 @@ def sinkhorn_lpl1_mm(a, labels_a, b, M, reg, eta=0.1, numItermax=10,
# separated
W = np.ones(M.shape)
for (i, c) in enumerate(classes):
+
majs = np.sum(transp[indices_labels[i]], axis=0)
majs = p * ((majs + epsilon)**(p - 1))
W[indices_labels[i]] = majs