feijoa.search package#

Subpackages#

Submodules#

feijoa.search.parameters module#

Parameters module.

class feijoa.search.parameters.Categorical(name, *, choices)#

Bases: feijoa.search.parameters.Parameter

Categorical 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
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.Parameter

Integer 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
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: object

Base 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: object

Parameters abstract visitor

Used for iteration over collections with parameters.

Raises:
AnyError:

If anything bad happens.

abstract visit_categorical(p)#

Visit categorical parameter.

Parameters

p (feijoa.search.parameters.Categorical) –

abstract visit_integer(p)#

Visit integer parameter.

Parameters

p (feijoa.search.parameters.Integer) –

abstract visit_real(p)#

Visit real parameter.

Parameters

p (feijoa.search.parameters.Real) –

class feijoa.search.parameters.Real(name, *, low, high)#

Bases: feijoa.search.parameters.Parameter

Real 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
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.Oracle

Seed 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: object

Search 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

p (feijoa.search.parameters.Parameter) –

Return type

None

feijoa.search.visitors module#

Different visitors module.

class feijoa.search.visitors.Randomizer(seed=0)#

Bases: feijoa.search.parameters.ParametersVisitor

Randomizer 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.