12
12
# language governing permissions and limitations under the License.
13
13
from __future__ import absolute_import
14
14
15
- from sagemaker .tuner import _ParameterRange
16
-
17
15
18
16
class Hyperparameter (object ):
19
17
"""An algorithm hyperparameter with optional validation. Implemented as a python
@@ -48,35 +46,12 @@ def validate(self, value):
48
46
raise ValueError (error_message )
49
47
50
48
def __get__ (self , obj , objtype ):
51
- """Return the value of this hyperparameter, whether it be a range or one discrete value"""
52
- if '_parameter_ranges' in dir (obj ) and self .name in obj ._parameter_ranges :
53
- return obj ._parameter_ranges [self .name ]
54
49
if '_hyperparameters' not in dir (obj ) or self .name not in obj ._hyperparameters :
55
50
raise AttributeError ()
56
51
return obj ._hyperparameters [self .name ]
57
52
58
53
def __set__ (self , obj , value ):
59
- """Assign values for hyperparameters"""
60
- if isinstance (value , _ParameterRange ):
61
- self ._set_parameter_range (obj , value )
62
- else :
63
- self ._set_hyperparameter (obj , value )
64
-
65
- def _set_parameter_range (self , obj , value ):
66
- # remove from the hyperparameters if it's there
67
- if '_hyperparameters' in dir (obj ) and self .name in obj ._hyperparameters :
68
- del obj ._hyperparameters [self .name ]
69
-
70
- if '_parameter_ranges' not in dir (obj ):
71
- obj ._parameter_ranges = dict ()
72
- obj ._parameter_ranges [self .name ] = value
73
-
74
- def _set_hyperparameter (self , obj , value ):
75
54
"""Validate the supplied value and set this hyperparameter to value"""
76
- # remove from the parameter_ranges if it's there
77
- if '_parameter_ranges' in dir (obj ) and self .name in obj ._parameter_ranges :
78
- del obj ._parameter_ranges [self .name ]
79
-
80
55
value = None if value is None else self .data_type (value )
81
56
self .validate (value )
82
57
if '_hyperparameters' not in dir (obj ):
@@ -85,10 +60,7 @@ def _set_hyperparameter(self, obj, value):
85
60
86
61
def __delete__ (self , obj ):
87
62
"""Delete this hyperparameter"""
88
- if '_hyperparameters' in dir (obj ) and self .name in obj ._hyperparameters :
89
- del obj ._hyperparameters [self .name ]
90
- if '_parameter_ranges' in dir (obj ) and self .name in obj ._parameter_ranges :
91
- del obj ._parameter_ranges [self .name ]
63
+ del obj ._hyperparameters [self .name ]
92
64
93
65
@staticmethod
94
66
def serialize_all (obj ):
0 commit comments