コード例 #1
0
ファイル: skopt_util.py プロジェクト: wangsd01/guildai
def _run_seq_trials(batch_run, suggest_x_cb):
    proto_flag_vals = batch_run.batch_proto.get("flags")
    batch_flag_vals = batch_run.get("flags")
    max_trials = batch_run.get("max_trials") or DEFAULT_MAX_TRIALS
    random_state = batch_run.get("random_seed")
    random_starts = min(batch_flag_vals.get("random-starts") or 0, max_trials)
    objective_scalar, objective_negate = _objective_y_info(batch_run)
    prev_trials_cb = lambda: batch_util.trial_results(batch_run,
                                                      [objective_scalar])
    trials_count = 0
    for trial_flag_vals, is_trial_random_start, prev_trials, x0 in _iter_seq_trials(
            proto_flag_vals,
            objective_negate,
            max_trials,
            random_state,
            random_starts,
            prev_trials_cb,
            suggest_x_cb,
            batch_flag_vals,
    ):
        _log_seq_trial(
            is_trial_random_start,
            random_starts,
            trials_count,
            x0,
            prev_trials,
            objective_scalar,
        )
        batch_util.run_trial(batch_run, trial_flag_vals)
        trials_count += 1
コード例 #2
0
def _run_seq_trials(batch_run, suggest_x_cb):
    proto_flag_vals = batch_run.batch_proto.get("flags")
    batch_flag_vals = suggest_opts = batch_run.get("flags")
    max_trials = batch_run.get("max_trials") or DEFAULT_MAX_TRIALS
    names, dims, initial_x = _flag_dims_for_search(proto_flag_vals)
    random_state = batch_run.get("random_seed")
    random_starts = min(batch_flag_vals.get("random-starts") or 0, max_trials)
    objective_spec, objective_scalar, objective_negate = _objective_y_info(
        batch_run)
    runs_count = 0
    for _ in range(max_trials):
        prev_trials = batch_util.trial_results(batch_run, [objective_scalar])
        x0, y0 = _trials_xy_for_prev_trials(prev_trials, names,
                                            objective_negate)
        suggest_random_start = _suggest_random_start(x0, runs_count,
                                                     random_starts)
        _log_seq_trial(
            suggest_random_start,
            random_starts,
            runs_count,
            x0,
            prev_trials,
            objective_spec,
        )
        suggested_x, random_state = _suggest_x(suggest_x_cb, dims, x0, y0,
                                               suggest_random_start,
                                               random_state, suggest_opts)
        if runs_count == 0 and suggested_x:
            _apply_initial_x(initial_x, suggested_x)
        trial_flag_vals = _trial_flags_for_x(suggested_x, names,
                                             proto_flag_vals)
        batch_util.run_trial(batch_run, trial_flag_vals)
        runs_count += 1
コード例 #3
0
def _run_seq_trials(batch_run, suggest_x_cb):
    proto_flag_vals = batch_run.batch_proto.get("flags")
    batch_flag_vals = batch_run.get("flags")
    max_trials = batch_run.get("max_trials") or DEFAULT_MAX_TRIALS
    random_state = batch_run.get("random_seed")
    random_starts = min(batch_flag_vals.get("random-starts") or 0, max_trials)
    objective_scalar, objective_negate = _objective_y_info(batch_run)
    prev_trials_model = (batch_flag_vals.get("prev-trials")
                         or batch_util.PREV_TRIALS_BATCH)
    prev_trials_cb = lambda: batch_util.trial_results(
        batch_run, [objective_scalar], prev_trials_model)
    trials_count = 0
    for trial_flag_vals, is_trial_random_start, prev_trials, x0 in _iter_seq_trials(
            proto_flag_vals,
            objective_negate,
            max_trials,
            random_state,
            random_starts,
            prev_trials_cb,
            suggest_x_cb,
            batch_flag_vals,
    ):
        _log_seq_trial(
            is_trial_random_start,
            random_starts,
            trials_count,
            x0,
            prev_trials,
            objective_scalar,
        )
        trial_run = batch_util.init_trial_run(batch_run, trial_flag_vals)
        try:
            batch_util.start_trial_run(trial_run)
        except SystemExit as e:
            batch_util.handle_trial_system_exit(e, batch_run, trial_run)
        else:
            trials_count += 1