smac.intensifier.hyperband

Classes

Hyperband(scenario[, instance_seed_pairs, ...])

Races multiple challengers against an incumbent using Hyperband method.

Interfaces

class smac.intensifier.hyperband.Hyperband(scenario, instance_seed_pairs=None, instance_order='shuffle_once', incumbent_selection='highest_executed_budget', n_initial_challengers=None, min_challenger=1, eta=3, seed=None, n_seeds=None)[source]

Bases: SuccessiveHalving

Races multiple challengers against an incumbent using Hyperband method.

Implementation from “BOHB: Robust and Efficient Hyperparameter Optimization at Scale” (Falkner et al. 2018)

Hyperband is an extension of the Successive Halving intensifier. Please refer to SuccessiveHalving documentation for more detailed information about the different types of budgets possible and the way instances are handled.

Internally, this class uses the HyperbandWorker class which actually implements the hyperband logic. To allow for parallelism, Hyperband can create multiple HyperbandWorker instances, based on the number of idle workers available.

Parameters:
  • scenario (Scenario) –

  • instance_seed_pairs (list[tuple[str | None, int]] | None, defaults to None) – This argument is used by Hyperband.

  • instance_order (str | None, defaults to shuffle_once) – How to order the instances. Can be set to: * None: Use as is given by the user. * shuffle_once: Shuffle once and use across all Successive Halving run . * shuffle: Shuffle before every Successive Halving run

  • incumbent_selection (str, defaults to highest_executed_budget) – How to select the incumbent in Successive Halving. Only active for (real-valued) budgets. Can be set to: * highest_executed_budget: Incumbent is the best in the highest budget run so far. * highest_budget: Incumbent is selected only based on the highest budget. * any_budget: Incumbent is the best on any budget i.e., best performance regardless of budget.

  • n_initial_challengers (int | None, defaults to None) – Number of challengers to consider for the initial budget. If not specified, it is calculated internally.

  • min_challenger (int, defaults to 1) – Minimal number of challengers to be considered (even if time_bound is exhausted earlier).

  • eta (float, defaults to 3) – The “halving” factor after each iteration in a Successive Halving run.

  • seed (int | None, defaults to None) –

  • n_seeds (int | None, defaults to None) – The number of seeds to use if the target function is non-deterministic.