Skip to content

Evolutionary Docs

seba-1511 edited this page Jul 29, 2019 · 19 revisions

Class Evolutionary

Selects the best elite_size results according to fitness() from the current experiment. Uniformly samples one of them as a parent, and perturbs it using the experiment's samplers.

Note that in order to change parent, you should call experiment sample_parent()

Parameters:

  • experiment - (Experiment) experiment to wrap.
  • elite_size - (int) number of results to consider as parents.
  • fitness - (function) function to determine fitness of result.

Return type: n/a

Example:

experiment = Experiment('name', params={'lr': Gaussian()})
evo = Evolutionary(experiment)
evo.sample_parent()
evo.sample_all_params()
evo.add_result(loss(evo.params))

add_result

def add_result(self, result, data=None, attachment=None)

Generates a randomly sampled value for all specified parameters

Parameters:

  • result - (float) value for the current set of hyperparameters.
  • data - (dict) additional logging data.
  • attachment - (dict) attachment data excluded from JSON summary.

Return type: n/a

Example:

e.add_result(loss)

all

def all(self)

Alias for Experiment.all_results()

Example:

e.all()

all_results

def all_results(self)

Iterates through all previous results in no specific order

Parameters: n/a

Return type: iterator

Example:

for res in e.all_results():
    print(res.result)
    print(res.params)

count

def count(self)

Returns the number of JSON summaries.

Parameters: n/a

Return type: int

Example:

e.count()

list

def list(self)

Returns a SummaryList of all results.

Parameters: n/a

Return type: SummaryList

Example:

summaries = exp.list()
summaries.filter(lambda x: x.result > 0.1)

maximum

def maximum(self)

Returns the maximum result from saved results.

Parameters: n/a

Return type: float

Example:

e.maximum()

minimum

def minimum(self)

Returns the minimum result from saved results.

Parameters: n/a

Return type: float

Example:

e.minimum()

sample

def sample(self, key)

Generates a randomly sampled value for given parameter, which is a sampled perturbation plus the value of the current parent.

Parameters:

  • key - name of randomly sampled parameter

Return type: (float) Value of randomly generated value for specified sampler

Example:

e.sample('iterations')

sample_all_params

def sample_all_params(self)

Similar to Experiment.sample_all_params() but the parent is re-sampled first.

sample_parent

def sample_parent(self)

Sets and returns a parent from currently available results.

Parameters: n/a

Return type: JSONSummary, the parent result.

Example:

evo.sample_parent()

save_state

def save_state(self, path)

Saves the state of the random variables into a file.

Parameters:

  • path - (string) target filepath

Return type: n/a

Example:

e.save_state(states/curr_state.pk)

seed

def seed(self, seed)

Manually set a seed value.

Parameters:

  • seed - (int) random seed.

Return type: n/a

Example:

e.seed(1234)

set

def set(self, key, value)

set_state

def set_state(self, path)

Sets the state of random variables from a file

Parameters:

  • path - (string) target filepath

Return type: n/a

Example:

e.set_state(states/curr_state.pk)

top

def top(self, count, fn=<function <lambda> at 0x7f6e597cc8c8>)

Returns the top count best results. By default, minimum.

Parameters:

  • count - (int) number of results to return.
  • fn - (function) comparison function. Default: leq

Return type: dict of parameters

Example:

e.top(3)