syne_tune.optimizer.schedulers.synchronous.hyperband_rung_system module

class syne_tune.optimizer.schedulers.synchronous.hyperband_rung_system.SynchronousHyperbandRungSystem[source]

Bases: object

Collects factory methods for RungSystemsPerBracket rung systems to be used in SynchronousHyperbandBracketManager.

static geometric(min_resource, max_resource, reduction_factor, num_brackets=None)[source]

This is the geometric progression setup from the original papers on successive halving and Hyperband.

If smax = ceil(log(max_resource / min_resource) / log(reduction_factor)), there can be at most s_max + 1 brackets. Here, bracket s has r_num = s_max - s + 1 rungs, and the size of rung r in bracket s is

n(r,s) = ceil( (s_max + 1) / r_num) * power(reduction_factor, r_num - r - 1)

Parameters:
  • min_resource (int) – Smallest resource level (positive int)

  • max_resource (int) – Largest resource level (positive int)

  • reduction_factor (float) – Approximate ratio between successive rung levels

  • num_brackets (Optional[int]) – Number of brackets. If not given, the maximum number of brackets is used. Pass 1 for successive halving

Return type:

List[List[Tuple[int, int]]]

Returns:

Rung system