From 5e3392a029e675c7e19f8b1723fcfdb9aa9142aa Mon Sep 17 00:00:00 2001 From: RĂ©mi Flamary Date: Tue, 24 Jul 2018 14:35:58 +0200 Subject: cancel einsum --- ot/bregman.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ot/bregman.py b/ot/bregman.py index 57cedb2..1873c46 100644 --- a/ot/bregman.py +++ b/ot/bregman.py @@ -358,14 +358,11 @@ def sinkhorn_knopp(a, b, M, reg, numItermax=1000, while (err > stopThr and cpt < numItermax): uprev = u vprev = v - if nbb: - KtransposeU = np.einsum('ij,ik->jk',K,u)#np.dot(K.T, u) - v = np.divide(b, KtransposeU) - u = 1. / np.einsum('ij,jk->ik',Kp,v)#np.dot(Kp, v) - else: - KtransposeU = np.einsum('ij,i->j',K,u)#np.dot(K.T, u) - v = np.divide(b, KtransposeU) - u = 1. / np.einsum('ij,j->i',Kp,v)#np.dot(Kp, v) + + KtransposeU = np.dot(K.T, u) + v = np.divide(b, KtransposeU) + u = 1. / np.dot(Kp, v) + if (np.any(KtransposeU == 0) or np.any(np.isnan(u)) or np.any(np.isnan(v)) or -- cgit v1.2.3