Пример #1
0
def _check_state_dims(state):
    if not state.dim_names:
        flag_desc = ", ".join(op_util.flag_assigns(state.proto_flags))
        log.error(
            "flags for batch (%s) do not contain any search "
            "dimension - quitting", flag_desc)
        raise batch_util.StopBatch(error=True)
Пример #2
0
 def __call__(self, trial, state):
     _check_state_dims(state)
     next_trial_flags = self.seq_trial_cb(trial, state)
     for run in trial.batch.seq_trial_runs():
         if next_trial_flags == run.get("flags"):
             flag_desc = ", ".join(op_util.flag_assigns(next_trial_flags))
             log.warning(
                 "optimizer repeated trial (%s) - using random",
                 flag_desc)
             next_trial_flags = self._random_trial_flags(state)
     return next_trial_flags, {}
Пример #3
0
 def __call__(self, trial, state):
     next_trial_flags = self.seq_trial_cb(trial, state)
     for run in trial.batch.seq_trial_runs():
         if next_trial_flags == run.get("flags"):
             flag_desc = " ".join(op_util.flag_assigns(next_trial_flags))
             log.warning("optimizer repeated trial (%s) - using random",
                         flag_desc)
             return (self._random_trial(state), {
                 "label": self._random_trial_label(trial, flag_desc)
             })
     return next_trial_flags, {}
Пример #4
0
 def _row_for_print_run(run, flags, labels, status):
     row = {"opspec": run_util.format_op_desc(run)}
     if flags:
         flag_vals = run.get("flags") or {}
         flags_desc = " ".join(op_util.flag_assigns(flag_vals, quote=True))
         row["flags"] = flags_desc
     if labels:
         row["label"] = run.get("label", "")
     if status:
         row["status"] = run.status
     return row
Пример #5
0
def gen_trials(flags,
               _runs,
               max_trials=None,
               random_seed=None,
               label=None,
               **kw):
    """Public interface for ipy."""
    if kw:
        log.warning("ignoring configuration %s", kw)
    num_trials = max_trials or DEFAULT_TRIALS
    dim_names, dims, _initials = skopt_util.flag_dims(flags)
    if not dim_names:
        flag_desc = ", ".join(op_util.flag_assigns(flags))
        log.error(
            "flags for batch (%s) do not contain any search "
            "dimension - quitting", flag_desc)
        raise batch_util.StopBatch(error=True)
    trial_vals = _gen_trial_vals(dims, num_trials, random_seed)
    trial_opts = {"label": label or "random"}
    return [(_trial_flags(dim_names, dim_vals, flags), trial_opts)
            for dim_vals in trial_vals]
Пример #6
0
def _popen_args(
    opspec=None,
    flags=None,
    label=None,
    run_dir=None,
    restart=None,
    stage=None,
    rerun=None,
    batch_files=None,
    batch_label=None,
    extra_env=None,
    optimize=False,
    optimizer=None,
    minimize=None,
    maximize=None,
    opt_flags=None,
    max_trials=None,
    random_seed=None,
    debug_sourcecode=None,
    needed=False,
    init_trials=False,
    force_flags=False,
    print_cmd=False,
    print_trials=False,
    save_trials=None,
    guild_home=None,
    cwd=None,
    quiet=False,
    debug=False,
    test_sourcecode=False,
):
    from guild import op_util

    cwd = cwd or "."
    flags = flags or {}
    opt_flags = opt_flags or {}
    args = [sys.executable, "-um", "guild.main_bootstrap"]
    if debug:
        args.append("--debug")
    args.extend(["run", "-y"])
    if opspec:
        args.append(opspec)
    if restart:
        args.extend(["--restart", restart])
    if stage:
        args.append("--stage")
    if rerun:
        args.extend(["--rerun", rerun])
    if label:
        args.extend(['--label', label])
    if batch_label:
        args.extend(['--batch-label', batch_label])
    args.extend(op_util.flag_assigns(flags))
    args.extend(["@%s" % path for path in (batch_files or [])])
    if run_dir:
        args.extend(["--run-dir", run_dir])
    if optimize:
        args.append("--optimize")
    if optimizer:
        args.extend(["--optimizer", optimizer])
    if minimize:
        args.extend(["--minimize", minimize])
    if maximize:
        args.extend(["--maximize", maximize])
    for name, val in sorted(opt_flags.items()):
        args.extend(["--opt-flag", op_util.flag_assign(name, val)])
    if max_trials is not None:
        args.extend(["--max-trials", str(max_trials)])
    if random_seed is not None:
        args.extend(["--random-seed", str(random_seed)])
    if debug_sourcecode:
        args.extend(["--debug-sourcecode", debug_sourcecode])
    if needed:
        args.append("--needed")
    if print_cmd:
        args.append("--print-cmd")
    if print_trials:
        args.append("--print-trials")
    if save_trials:
        args.extend(["--save-trials", save_trials])
    if init_trials:
        args.append("--init-trials")
    if force_flags:
        args.append("--force-flags")
    if quiet:
        args.append("--quiet")
    if test_sourcecode:
        args.append("--test-sourcecode")
    env = dict(os.environ)
    env["NO_IMPORT_FLAGS_PROGRESS"] = "1"
    if extra_env:
        env.update(extra_env)
    _apply_guild_home_env(env, guild_home)
    _apply_python_path_env(env)
    _apply_lang_env(env)
    return args, cwd, env
Пример #7
0
def _popen_args(
    opspec=None,
    flags=None,
    label=None,
    tags=None,
    comment=None,
    run_dir=None,
    restart=None,
    start=None,
    stage=None,
    proto=None,
    force_sourcecode=False,
    batch_files=None,
    batch_label=None,
    batch_tags=None,
    batch_comment=None,
    extra_env=None,
    optimize=False,
    optimizer=None,
    minimize=None,
    maximize=None,
    opt_flags=None,
    max_trials=None,
    random_seed=None,
    debug_sourcecode=None,
    needed=False,
    stage_trials=False,
    force_flags=False,
    force_deps=False,
    stop_after=None,
    fail_on_trial_error=False,
    print_cmd=False,
    print_trials=False,
    save_trials=None,
    guild_home=None,
    cwd=None,
    quiet=False,
    debug=False,
    test_sourcecode=False,
    gpus=None,
    help_op=False,
    run_id=None,
    background=False,
    keep_run=False,
    keep_batch=False,
):
    from guild import op_util

    cwd = cwd or "."
    flags = flags or {}
    opt_flags = opt_flags or {}
    tags = tags or []
    batch_tags = batch_tags or []
    args = [sys.executable, "-um", "guild.main_bootstrap"]
    if debug:
        args.append("--debug")
    args.extend(["run", "-y"])
    if opspec:
        args.append(opspec)
    if restart:
        args.extend(["--restart", restart])
    # start is a synonym for restart - pass this through as provided.
    if start:
        args.extend(["--start", start])
    if stage:
        args.append("--stage")
    if proto:
        args.extend(["--proto", proto])
    if force_sourcecode:
        args.append("--force-sourcecode")
    if label:
        args.extend(["--label", label])
    for tag in tags:
        args.extend(["--tag", tag])
    if comment:
        args.extend(["--comment", comment])
    if batch_label:
        args.extend(['--batch-label', batch_label])
    for tag in batch_tags:
        args.extend(["--batch-tag", tag])
    if batch_comment:
        args.extend(["--batch-comment", batch_comment])
    if run_dir:
        args.extend(["--run-dir", run_dir])
    if optimize:
        args.append("--optimize")
    if optimizer:
        args.extend(["--optimizer", optimizer])
    if minimize:
        args.extend(["--minimize", minimize])
    if maximize:
        args.extend(["--maximize", maximize])
    for name, val in sorted(opt_flags.items()):
        args.extend(["--opt-flag", op_util.flag_assign(name, val)])
    if max_trials is not None:
        args.extend(["--max-trials", str(max_trials)])
    if random_seed is not None:
        args.extend(["--random-seed", str(random_seed)])
    if debug_sourcecode:
        args.extend(["--debug-sourcecode", debug_sourcecode])
    if needed:
        args.append("--needed")
    if print_cmd:
        args.append("--print-cmd")
    if print_trials:
        args.append("--print-trials")
    if save_trials:
        args.extend(["--save-trials", save_trials])
    if stage_trials:
        args.append("--stage-trials")
    if force_flags:
        args.append("--force-flags")
    if force_deps:
        args.append("--force-deps")
    if stop_after is not None:
        args.extend(["--stop-after", str(stop_after)])
    if fail_on_trial_error:
        args.append("--fail-on-trial-error")
    if quiet:
        args.append("--quiet")
    if test_sourcecode:
        args.append("--test-sourcecode")
    if gpus:
        args.extend(["--gpus", str(gpus)])
    if help_op:
        args.append("--help-op")
    if run_id:
        args.extend(["--run-id", run_id])
    if background:
        args.append("--background")
    if keep_run:
        args.append("--keep-run")
    if keep_batch:
        args.append("--keep-batch")
    args.extend(op_util.flag_assigns(flags))
    args.extend(["@%s" % path for path in (batch_files or [])])
    env = dict(os.environ)
    env["NO_IMPORT_FLAGS_PROGRESS"] = "1"
    if extra_env:
        env.update(extra_env)
    _apply_guild_home_env(env, guild_home)
    _apply_python_path_env(env)
    _apply_lang_env(env)
    return args, cwd, env
Пример #8
0
def _flag_args(flags):
    return tuple(op_util.flag_assigns(flags, skip_none=True))
Пример #9
0
 def _flag_assigns(self):
     return op_util.flag_assigns(self.flags)