20
20
from sagemaker .estimator import Framework
21
21
from sagemaker .job import _Job
22
22
from sagemaker .session import Session
23
- from sagemaker .utils import base_name_from_image , name_from_base
23
+ from sagemaker .utils import base_name_from_image , name_from_base , to_str
24
24
25
25
# TODO: probably move these somewhere to Amazon Estimator land after
26
26
# the circular dependency issue is resolved
@@ -45,8 +45,8 @@ def __init__(self, min_value, max_value):
45
45
46
46
def as_tuning_range (self , name ):
47
47
return {'Name' : name ,
48
- 'MinValue' : str (self .min_value ),
49
- 'MaxValue' : str (self .max_value )}
48
+ 'MinValue' : to_str (self .min_value ),
49
+ 'MaxValue' : to_str (self .max_value )}
50
50
51
51
52
52
class ContinuousParameter (_ParameterRange ):
@@ -61,9 +61,9 @@ class CategoricalParameter(_ParameterRange):
61
61
62
62
def __init__ (self , values ):
63
63
if isinstance (values , list ):
64
- self .values = [str (v ) for v in values ]
64
+ self .values = [to_str (v ) for v in values ]
65
65
else :
66
- self .values = [str (values )]
66
+ self .values = [to_str (values )]
67
67
68
68
def as_tuning_range (self , name ):
69
69
return {'Name' : name ,
@@ -108,8 +108,7 @@ def __init__(self, estimator, objective_metric_name, hyperparameter_ranges, metr
108
108
self ._validate_parameter_ranges ()
109
109
110
110
def prepare_for_training (self ):
111
- # TODO: Change this so that it can handle unicode in Python 2
112
- self .static_hyperparameters = {str (k ): str (v ) for (k , v ) in self .estimator .hyperparameters ().items ()}
111
+ self .static_hyperparameters = {to_str (k ): to_str (v ) for (k , v ) in self .estimator .hyperparameters ().items ()}
113
112
for hyperparameter_name in self ._hyperparameter_ranges .keys ():
114
113
self .static_hyperparameters .pop (hyperparameter_name , None )
115
114
0 commit comments