in src/sagemaker/algorithm.py [0:0]
def _hyperparameter_range_and_class(self, parameter_type, hyperparameter):
"""Placeholder docstring."""
if parameter_type in self._hyperpameters_with_range:
range_name = parameter_type + "ParameterRangeSpecification"
parameter_class = None
parameter_range = None
if parameter_type in ("Integer", "Continuous"):
# Integer and Continuous are handled the same way. We get the min and max values
# and just create an Instance of Parameter. Note that the range is optional for all
# the Parameter Types.
if parameter_type == "Integer":
parameter_class = sagemaker.parameter.IntegerParameter
else:
parameter_class = sagemaker.parameter.ContinuousParameter
if "Range" in hyperparameter:
min_value = parameter_class.cast_to_type(
hyperparameter["Range"][range_name]["MinValue"]
)
max_value = parameter_class.cast_to_type(
hyperparameter["Range"][range_name]["MaxValue"]
)
parameter_range = parameter_class(min_value, max_value)
elif parameter_type == "Categorical":
parameter_class = sagemaker.parameter.CategoricalParameter
if "Range" in hyperparameter:
values = hyperparameter["Range"][range_name]["Values"]
parameter_range = sagemaker.parameter.CategoricalParameter(values)
elif parameter_type == "FreeText":
pass
else:
raise ValueError(
"Invalid Hyperparameter type: %s. Valid ones are:"
"(Integer, Continuous, Categorical, FreeText)" % parameter_type
)
return parameter_class, parameter_range