def _common_defaults()

in syne_tune/optimizer/schedulers/searchers/gp_searcher_factory.py [0:0]


def _common_defaults(is_hyperband: bool, is_multi_output: bool) -> (Set[str], dict, dict):
    mandatory = set()

    default_options = {
        'opt_skip_init_length': 150,
        'opt_skip_period': 1,
        'profiler': False,
        'opt_maxiter': 50,
        'opt_nstarts': 2,
        'opt_warmstart': False,
        'opt_verbose': False,
        'opt_debug_writer': False,
        'num_fantasy_samples': 20,
        'scheduler': 'fifo',
        'num_init_random': DEFAULT_NUM_INITIAL_RANDOM_EVALUATIONS,
        'num_init_candidates': DEFAULT_NUM_INITIAL_CANDIDATES,
        'initial_scoring': DEFAULT_INITIAL_SCORING,
        'debug_log': True,
        'cost_attr': 'elapsed_time',
        'normalize_targets': True,
        'no_fantasizing': False}
    if is_hyperband:
        default_options['model'] = 'gp_multitask'
        default_options['opt_skip_num_max_resource'] = False
        default_options['gp_resource_kernel'] = 'exp-decay-sum'
        default_options['resource_acq'] = 'bohb'
        default_options['resource_acq_bohb_threshold'] = 3
        default_options['num_init_random'] = 6
        default_options['issm_gamma_one'] = False
        default_options['expdecay_normalize_inputs'] = False
        default_options['use_new_code'] = True  # DEBUG
    if is_multi_output:
        default_options['initial_scoring'] = 'acq_func'
        default_options['exponent_cost'] = 1.0

    constraints = {
        'random_seed': Integer(0, 2 ** 32 - 1),
        'opt_skip_init_length': Integer(0, None),
        'opt_skip_period': Integer(1, None),
        'profiler': Boolean(),
        'opt_maxiter': Integer(1, None),
        'opt_nstarts': Integer(1, None),
        'opt_warmstart': Boolean(),
        'opt_verbose': Boolean(),
        'opt_debug_writer': Boolean(),
        'num_fantasy_samples': Integer(1, None),
        'num_init_random': Integer(0, None),
        'num_init_candidates': Integer(5, None),
        'initial_scoring': Categorical(
            choices=tuple(SUPPORTED_INITIAL_SCORING)),
        'debug_log': Boolean(),
        'normalize_targets': Boolean()}

    if is_hyperband:
        constraints['model'] = Categorical(
            choices=('gp_multitask', 'gp_issm', 'gp_expdecay'))
        constraints['opt_skip_num_max_resource'] = Boolean()
        constraints['gp_resource_kernel'] = Categorical(
            choices=SUPPORTED_RESOURCE_MODELS)
        constraints['resource_acq'] = Categorical(
            choices=tuple(SUPPORTED_RESOURCE_FOR_ACQUISITION))
        constraints['issm_gamma_one'] = Boolean()
        constraints['expdecay_normalize_inputs'] = Boolean()
        constraints['use_new_code'] = Boolean()  # DEBUG
    if is_multi_output:
        constraints['initial_scoring'] = Categorical(
            choices=tuple({'acq_func'}))
        constraints['exponent_cost'] = Float(0.0, 1.0)

    return mandatory, default_options, constraints