@@ -1058,12 +1058,13 @@ class SinkhornTransport(BaseTransport):
1058
1058
can occur with large metric values.
1059
1059
distribution_estimation : callable, optional (defaults to the uniform)
1060
1060
The kind of distribution estimation to employ
1061
- out_of_sample_map : string, optional (default="pooladian ")
1061
+ out_of_sample_map : string, optional (default="continuous ")
1062
1062
The kind of out of sample mapping to apply to transport samples
1063
1063
from a domain into another one. Currently the only possible option is
1064
1064
"ferradans" which uses the nearest neighbor method proposed in :ref:`[6]
1065
- <references-sinkhorntransport>` while "pooladian " use the out of sample
1065
+ <references-sinkhorntransport>` while "continuous " use the out of sample
1066
1066
method from :ref:`[66]
1067
+ <references-sinkhorntransport>` and :ref:`[19]
1067
1068
<references-sinkhorntransport>`.
1068
1069
limit_max: float, optional (default=np.infty)
1069
1070
Controls the semi supervised mode. Transport between labeled source
@@ -1093,6 +1094,10 @@ class SinkhornTransport(BaseTransport):
1093
1094
Regularized discrete optimal transport. SIAM Journal on Imaging
1094
1095
Sciences, 7(3), 1853-1882.
1095
1096
1097
+ .. [19] Seguy, V., Bhushan Damodaran, B., Flamary, R., Courty, N., Rolet, A.
1098
+ & Blondel, M. Large-scale Optimal Transport and Mapping Estimation.
1099
+ International Conference on Learning Representation (2018)
1100
+
1096
1101
.. [66] Pooladian, Aram-Alexandre, and Jonathan Niles-Weed. "Entropic
1097
1102
estimation of optimal transport maps." arXiv preprint
1098
1103
arXiv:2109.12004 (2021).
@@ -1103,9 +1108,9 @@ def __init__(self, reg_e=1., method="sinkhorn_log", max_iter=1000,
1103
1108
tol = 10e-9 , verbose = False , log = False ,
1104
1109
metric = "sqeuclidean" , norm = None ,
1105
1110
distribution_estimation = distribution_estimation_uniform ,
1106
- out_of_sample_map = 'pooladian ' , limit_max = np .infty ):
1111
+ out_of_sample_map = 'continuous ' , limit_max = np .infty ):
1107
1112
1108
- if out_of_sample_map not in ['ferradans' , 'pooladian ' ]:
1113
+ if out_of_sample_map not in ['ferradans' , 'continuous ' ]:
1109
1114
raise ValueError ('Unknown out_of_sample_map method' )
1110
1115
1111
1116
self .reg_e = reg_e
@@ -1147,11 +1152,11 @@ class label
1147
1152
1148
1153
super (SinkhornTransport , self ).fit (Xs , ys , Xt , yt )
1149
1154
1150
- if self .out_of_sample_map == 'pooladian ' :
1155
+ if self .out_of_sample_map == 'continuous ' :
1151
1156
self .log = True
1152
1157
if not self .method == 'sinkhorn_log' :
1153
1158
self .method = 'sinkhorn_log'
1154
- warnings .warn ("The method has been set to 'sinkhorn_log' as it is the only method available for out_of_sample_map='pooladian '" )
1159
+ warnings .warn ("The method has been set to 'sinkhorn_log' as it is the only method available for out_of_sample_map='continuous '" )
1155
1160
1156
1161
# coupling estimation
1157
1162
returned_ = sinkhorn (
@@ -1198,7 +1203,7 @@ class label
1198
1203
if self .out_of_sample_map == 'ferradans' :
1199
1204
return super (SinkhornTransport , self ).transform (Xs , ys , Xt , yt , batch_size )
1200
1205
1201
- else : # self.out_of_sample_map == 'pooladian ':
1206
+ else : # self.out_of_sample_map == 'continuous ':
1202
1207
1203
1208
# check the necessary inputs parameters are here
1204
1209
g = self .log_ ['log_v' ]
@@ -1243,7 +1248,7 @@ class label
1243
1248
if self .out_of_sample_map == 'ferradans' :
1244
1249
return super (SinkhornTransport , self ).inverse_transform (Xs , ys , Xt , yt , batch_size )
1245
1250
1246
- else : # self.out_of_sample_map == 'pooladian ':
1251
+ else : # self.out_of_sample_map == 'continuous ':
1247
1252
1248
1253
f = self .log_ ['log_u' ]
1249
1254
0 commit comments