feijoa.search package#
Subpackages#
- feijoa.search.oracles package
Submodules#
feijoa.search.parameters module#
Parameters module.
- class feijoa.search.parameters.Categorical(name, *, choices)#
Bases:
feijoa.search.parameters.ParameterCategorical parameter class.
Represents category parameters.
Such parameters can be, activation function, or type of regression model in AutoML.
- Parameters
name (str) – Name of parameter.
choices (list) – List of choices, for example:
`['rbf', 'sigmoid']`
- Raises
ParametersIncorrectInputValues – If input values is empty or exists not unique values.
AnyError – If anything bad happens.
- Parameters
name (str) –
- accept(v)#
Accept visitor.
- Parameters
v (Visitor) – ParametersVisitor instance.
- Returns
Any
- property bounds#
Bounds of parameter.
- get_unit_value(value)#
Only for primitive parameters.
- is_primitive()#
Primitive parameter, such as integer, real.
- property meta#
Meta information of parameter.
- seed()#
Make some legal value.
- class feijoa.search.parameters.Integer(name, *, low, high)#
Bases:
feijoa.search.parameters.ParameterInteger parameter class.
Represents discrete integer parameters from Z-space.
Such parameters can be, for example, the number of layers in neural networks or the number of neurons in a hidden layer, max depth of tree.
Example:
from feijoa.search.parameters import Integer param = Integer("foo", low=0, high=10)
- Parameters
name (str) – Name of parameter.
low (int) – Lower bound of parameter.
high (int) – Upper bound of parameter.
- Raises
ParametersIncorrectInputValues – If input values is not valid integer values.
AnyError – If anything bad happens.
- accept(v)#
Accept visitor.
- Parameters
v (Visitor) – ParametersVisitor instance.
- Returns
Any
- property bounds#
Bounds of parameter.
- get_unit_value(value)#
Only for primitive parameters.
- is_primitive()#
Primitive parameter, such as integer, real.
- property meta#
Meta information of parameter.
- seed()#
Make some legal value.
- class feijoa.search.parameters.Parameter(name)#
Bases:
objectBase class of parameter.
- Parameters
name (str) –
- abstract accept(v)#
Accept visitor.
- Parameters
v (Visitor) – ParametersVisitor instance.
- Returns
Any
- abstract property bounds#
Bounds of parameter.
- abstract get_unit_value(value)#
Only for primitive parameters.
- abstract is_primitive()#
Primitive parameter, such as integer, real.
- abstract property meta#
Meta information of parameter.
- abstract seed()#
Make some legal value.
- class feijoa.search.parameters.ParametersVisitor#
Bases:
objectParameters abstract visitor
Used for iteration over collections with parameters.
- Raises:
- AnyError:
If anything bad happens.
- abstract visit_categorical(p)#
Visit categorical parameter.
- Parameters
- abstract visit_integer(p)#
Visit integer parameter.
- Parameters
- abstract visit_real(p)#
Visit real parameter.
- Parameters
- class feijoa.search.parameters.Real(name, *, low, high)#
Bases:
feijoa.search.parameters.ParameterReal parameter class.
Represents real parameters from R-space.
Such parameters can be, for example, learning rate of ML oracle, or mutation rate in genetic oracles.
Example:
from feijoa.search.parameters import Real param = Real("foo", low=0.0, high=10.0)
- Parameters
name (str) – Name of parameter.
low (float) – Lower bound of parameter.
high (float) – Upper bound of parameter.
- Raises
ParametersIncorrectInputValues – If input values is not valid real values.
AnyError – If anything bad happens.
- Parameters
name (str) –
low (float) –
high (float) –
- accept(v)#
Accept visitor.
- Parameters
v (Visitor) – ParametersVisitor instance.
- Returns
Any
- property bounds#
Bounds of parameter.
- get_unit_value(value)#
Only for primitive parameters.
- is_primitive()#
Primitive parameter, such as integer, real.
- property meta#
Meta information of parameter.
- seed()#
Make some legal value.
feijoa.search.seed module#
- class feijoa.search.seed.SeedOracle(*seeds, **kwargs)#
Bases:
feijoa.search.oracles.oracle.OracleSeed oracle used for measuring.
Some known configurations and give a good basis for the rest of the oracles.
- Parameters
seeds – List of seed configurations.
- Raises
AnyError – If anything bad happens.
- aliases = ('SeedOracle', 'seed')#
- anchor = 'seed'#
- ask(n=1)#
Get configurations from oracle.
- Parameters
n (int, optional) – Preferred count of configurations.
- Return type
Optional[List[feijoa.models.configuration.Configuration]]
Note
Parameter n may not affect on configuration’s count.
- Returns
List of configurations, or None if configurations are over.
- Raises
AnyError – If anything bad happens.
- Parameters
n (int) –
- Return type
Optional[List[feijoa.models.configuration.Configuration]]
- attach(observer)#
Attach an observer to the subject.
- Parameters
observer (feijoa.utils.mixins.Observer) –
- Return type
None
- detach(observer)#
Detach an observer from the subject.
- Parameters
observer (feijoa.utils.mixins.Observer) –
- Return type
None
- property name#
Name of oracle.
- notify(event, *args, **kwargs)#
Notify all observers about an event.
- tell(config, result)#
Tell configuration’s result to oracle to accumulate information model.
- Parameters
config (Configuration) – Configuration instance.
result (float) – Objective result for configuration.
Note
The function signature may change in the future due to plans to implement multi&many-objective optimization.
- Returns
None
- Raises
AnyError – If anything bad happens.
- update(event, subject, *args, **kwargs)#
Receive update from subject.
- Args:
- event:
Type of event.
- subject:
Subject of notification.
- Returns:
None
- Raises:
AnyError: If anything bad happens.
feijoa.search.space module#
Search space module.
- class feijoa.search.space.SearchSpace(*parameters)#
Bases:
objectSearch space class.
Represents cartesian multiplication of set of available values for every parameter.
Example
from feijoa.search.space import SearchSpace from feijoa.search.parameters import Real space = SearchSpace() space.insert(Real("x", low=0.0, high=1.0))
- Parameters
parameters (list, optional) – List of parameters instances.
- Raises
AnyError – If anything bad happens.
- property bounds#
Get bounds from search space
- property card#
- classmethod from_db_parameters(parameters)#
- Build search space from db representation
of parameters.
- Raises:
AnyError: If anything bad happens.
- classmethod from_yaml(yaml_string)#
Load search space from yaml.
- classmethod from_yaml_file(yaml_file)#
Load search space from yaml file.
- get(item, default=None)#
Get parameters by name from search space.
- Parameters
item (str) –
- insert(p)#
Insert parameter into search space
- Parameters
- Return type
None
feijoa.search.visitors module#
Different visitors module.
- class feijoa.search.visitors.Randomizer(seed=0)#
Bases:
feijoa.search.parameters.ParametersVisitorRandomizer for parameters visitor.
Generate random values for specified parameters.
- Raises
AnyError – If anything bad happens.
- visit_categorical(p)#
Visit categorical parameter.
- visit_integer(p)#
Visit integer parameter.
- visit_real(p)#
Visit real parameter.
Module contents#
Search module.