agramfort · GitHub

Merged

Merged

Conversation

agramfort

>>> a=[.5,.5]
>>> b=[.5,.5]
>>> M=[[0.,1.],[1.,0.]]
>>> ot.sinkhorn(a,b,M,1)
m = b.shape[0]

# Next 3 lines equivalent to K= np.exp(-M/reg), but faster to compute
K = np.empty(M.shape, dtype=M.dtype)
np.divide(M, -reg, out=K)
np.exp(K, out=K)

u = np.ones(n)/n
np.exp(K, out=K)

u = np.ones(n)/n
v = np.ones(m)/m

u = np.ones(n)/n
v = np.ones(m)/m
G = np.diag(u)@K@np.diag(v)
G[:,i_2] = u*K[:,i_2]*v[i_2]
#aviol = (G@one_m - a)
#aviol_2 = (G.T@one_n - b)
viol = viol + ( -old_v + v[i_2])*K[:,i_2]*u
np.testing.assert_allclose(G0, Ges, atol=1e-05)
np.testing.assert_allclose(G0, Gerr)

np.testing.assert_allclose(G0, G_green, atol = 1e-32)
np.testing.assert_allclose(G0, Gerr)

np.testing.assert_allclose(G0, G_green, atol = 1e-32)
print(G0,G_green)
one_n = np.ones(n)
one_m = np.ones(m)
viol = G@one_m - a
viol_2 = G.T@one_n - b
log['u'] = u
log['v'] = v

while i < numItermax and stopThr_val > stopThr:

@rflamary rflamary changed the title adding greenkhorn Adding greenkhorn

Sep 24, 2018

@rflamary rflamary changed the title Adding greenkhorn [MRG] Adding greenkhorn

Sep 24, 2018

agramfort


"""

i = 0

@rflamary

@rflamary

Labels

None yet

Read the original on github.com ↗