MCPcopy Create free account
hub / github.com/automl/Auto-PyTorch / get_hyperparameter

Function get_hyperparameter

autoPyTorch/utils/common.py:187–228  ·  view source on GitHub ↗

Given a hyperparameter search space, return a ConfigSpace Hyperparameter Args: hyperparameter (HyperparameterSearchSpace): the search space for the hyperparameter hyperparameter_type (Hyperparameter): the type of the hyperparameter Returns:

(hyperparameter: HyperparameterSearchSpace,
                       hyperparameter_type: Type[Hyperparameter])

Source from the content-addressed store, hash-verified

185
186
187def get_hyperparameter(hyperparameter: HyperparameterSearchSpace,
188 hyperparameter_type: Type[Hyperparameter]) -> Hyperparameter:
189 """
190 Given a hyperparameter search space, return a ConfigSpace Hyperparameter
191 Args:
192 hyperparameter (HyperparameterSearchSpace):
193 the search space for the hyperparameter
194 hyperparameter_type (Hyperparameter):
195 the type of the hyperparameter
196
197 Returns:
198 Hyperparameter
199 """
200 if len(hyperparameter.value_range) == 0:
201 raise ValueError(hyperparameter.hyperparameter + ': The range has to contain at least one element')
202 if len(hyperparameter.value_range) == 1 and hyperparameter_type != CategoricalHyperparameter:
203 return Constant(hyperparameter.hyperparameter, hyperparameter.value_range[0])
204 if len(hyperparameter.value_range) == 2 and hyperparameter.value_range[0] == hyperparameter.value_range[1]:
205 return Constant(hyperparameter.hyperparameter, hyperparameter.value_range[0])
206 if hyperparameter_type == CategoricalHyperparameter:
207 return CategoricalHyperparameter(hyperparameter.hyperparameter,
208 choices=hyperparameter.value_range,
209 default_value=hyperparameter.default_value)
210 if hyperparameter_type == UniformFloatHyperparameter:
211 assert len(hyperparameter.value_range) == 2, \
212 "Float HP range update for %s is specified by the two upper " \
213 "and lower values. %s given." % (hyperparameter.hyperparameter, len(hyperparameter.value_range))
214 return UniformFloatHyperparameter(hyperparameter.hyperparameter,
215 lower=hyperparameter.value_range[0],
216 upper=hyperparameter.value_range[1],
217 log=hyperparameter.log,
218 default_value=hyperparameter.default_value)
219 if hyperparameter_type == UniformIntegerHyperparameter:
220 assert len(hyperparameter.value_range) == 2, \
221 "Int HP range update for %s is specified by the two upper " \
222 "and lower values. %s given." % (hyperparameter.hyperparameter, len(hyperparameter.value_range))
223 return UniformIntegerHyperparameter(hyperparameter.hyperparameter,
224 lower=hyperparameter.value_range[0],
225 upper=hyperparameter.value_range[1],
226 log=hyperparameter.log,
227 default_value=hyperparameter.default_value)
228 raise ValueError('Unknown type: %s for hp %s' % (hyperparameter_type, hyperparameter.hyperparameter))
229
230
231def add_hyperparameter(cs: ConfigurationSpace,

Calls

no outgoing calls

Tested by

no test coverage detected