deephyper.problem.HpProblem
deephyper.problem.HpProblem#
-
class
deephyper.problem.
HpProblem
(config_space=None)[source]# Bases:
object
Class to define an hyperparameter problem.
>>> from deephyper.problem import HpProblem >>> problem = HpProblem()
- Parameters
config_space (ConfigurationSpace, optional) – In case the
HpProblem
is defined from a ConfigurationSpace.
Methods
Add a condition to the
HpProblem
.Add a list of condition to the
HpProblem
.Add a forbidden clause to the
HpProblem
.Add an hyperparameter to the
HpProblem
.Add a list of hyperparameters.
Check if a configuration is valid.
Returns a dict version of the space which can be saved as JSON.
Attributes
The default configuration as a dictionnary.
The list of hyperparameters names.
The wrapped ConfigSpace object.
-
add_condition
(condition)[source]# Add a condition to the
HpProblem
.>>> from deephyper.problem import HpProblem >>> import ConfigSpace as cs >>> problem = HpProblem() >>> x = problem.add_hyperparameter((0.0, 10.0), "x") >>> y = problem.add_hyperparameter((1e-4, 1.0), "y") >>> problem.add_condition(cs.LessThanCondition(y, x, 1.0))
- Parameters
condition – A ConfigSpace condition.
-
add_conditions
(conditions: list) → None[source]# Add a list of condition to the
HpProblem
.- Parameters
conditions (list) – A list of ConfigSpace conditions.
-
add_forbidden_clause
(clause)[source]# Add a forbidden clause to the
HpProblem
.For example if we want to optimize \(\frac{1}{x}\) where \(x\) cannot be equal to 0:
>>> from deephyper.problem import HpProblem >>> import ConfigSpace as cs >>> problem = HpProblem() >>> x = problem.add_hyperparameter((0.0, 10.0), "x") >>> problem.add_forbidden_clause(cs.ForbiddenEqualsClause(x, 0.0))
- Parameters
clause – a ConfigSpace forbidden clause.
-
add_hyperparameter
(value, name: Optional[str] = None, default_value=None) → ConfigSpace.hyperparameters.Hyperparameter[source]# Add an hyperparameter to the
HpProblem
.Hyperparameters can be added to a
HpProblem
with a short syntax:>>> problem.add_hyperparameter((0, 10), "discrete", default_value=5) >>> problem.add_hyperparameter((0.0, 10.0), "real", default_value=5.0) >>> problem.add_hyperparameter([0, 10], "categorical", default_value=0)
Sampling distributions can be provided:
>>> problem.add_hyperparameter((0.0, 10.0, "log-uniform"), "real", default_value=5.0)
It is also possible to use ConfigSpace
Hyperparameters
:>>> import ConfigSpace.hyperparameters as csh >>> csh_hp = csh.UniformIntegerHyperparameter( ... name='uni_int', lower=10, upper=100, log=False) >>> problem.add_hyperparameter(csh_hp)
- Parameters
- Returns
a ConfigSpace
Hyperparameter
object corresponding to the(value, name, default_value)
.- Return type
ConfigSpace.Hyperparameter
-
add_hyperparameters
(hp_list)[source]# Add a list of hyperparameters. It can be useful when a list of
ConfigSpace.Hyperparameter
are defined and we need to add them to theHpProblem
.- Parameters
hp_list (ConfigSpace.Hyperparameter) – a list of ConfigSpace hyperparameters.
- Returns
The list of added hyperparameters.
- Return type
-
check_configuration
(parameters: dict)[source]# Check if a configuration is valid. Raise an error if not.
-
property
default_configuration
# The default configuration as a dictionnary.
-
property
hyperparameter_names
# The list of hyperparameters names.
-
property
space
# The wrapped ConfigSpace object.