@@ -232,7 +232,7 @@ def partial_wasserstein(a, b, M, m=None, nb_dummies=1, log=False, **kwargs):
232
232
233
233
b_extended = np .append (b , [(np .sum (a ) - m ) / nb_dummies ] * nb_dummies )
234
234
a_extended = np .append (a , [(np .sum (b ) - m ) / nb_dummies ] * nb_dummies )
235
- M_extended = np .ones ((len (a_extended ), len (b_extended ))) * 0
235
+ M_extended = np .zeros ((len (a_extended ), len (b_extended )))
236
236
M_extended [- 1 , - 1 ] = np .max (M ) * 1e5
237
237
M_extended [:len (a ), :len (b )] = M
238
238
@@ -510,9 +510,9 @@ def partial_gromov_wasserstein(C1, C2, p, q, m=None, nb_dummies=1, G0=None,
510
510
Gprev = G0
511
511
512
512
M = gwgrad_partial (C1 , C2 , G0 )
513
- M [M < eps ] = np .quantile (M [ M > eps ] , thres )
513
+ M [M < eps ] = np .quantile (M , thres )
514
514
515
- M_emd = np .ones (dim_G_extended ) * np . max ( M ) * 1e2
515
+ M_emd = np .zeros (dim_G_extended )
516
516
M_emd [:len (p ), :len (q )] = M
517
517
M_emd [- nb_dummies :, - nb_dummies :] = np .max (M ) * 1e5
518
518
M_emd = np .asarray (M_emd , dtype = np .float64 )
@@ -729,16 +729,16 @@ def entropic_partial_wasserstein(a, b, M, reg, m=None, numItermax=1000,
729
729
M = np .asarray (M , dtype = np .float64 )
730
730
731
731
dim_a , dim_b = M .shape
732
- dx = np .ones (dim_a )
733
- dy = np .ones (dim_b )
732
+ dx = np .ones (dim_a , dtype = np . float64 )
733
+ dy = np .ones (dim_b , dtype = np . float64 )
734
734
735
735
if len (a ) == 0 :
736
736
a = np .ones (dim_a , dtype = np .float64 ) / dim_a
737
737
if len (b ) == 0 :
738
738
b = np .ones (dim_b , dtype = np .float64 ) / dim_b
739
739
740
740
if m is None :
741
- m = np .min ((np .sum (a ), np .sum (b )))
741
+ m = np .min ((np .sum (a ), np .sum (b ))) * 1.0
742
742
if m < 0 :
743
743
raise ValueError ("Problem infeasible. Parameter m should be greater"
744
744
" than 0." )
0 commit comments