Exemple #1
0
    parser = argparse.ArgumentParser()
    parser.add_argument("plots", nargs='+', help=",".join(sorted(funcs)))
    args, _ = parser.parse_known_args()

    config = Config(
        version=0,
        paper=False,
        clear_cache=False,
        no_block=False,
        show=False,
        fill=False,
        ext='.pdf',
        style='bmh',

    )
    config.update_from_command_line()
    style_list = ['default', 'classic'] + sorted(style for style in plt.style.available if style != 'classic')
    assert config.style in style_list

    plt.rc('lines', linewidth=1)
    ext = config.ext
    ext = ext if ext.startswith('.') else '.' + ext

    color_cycle = plt.get_cmap("Dark2").colors
    # color_cycle = plt.get_cmap("Paired").colors
    # color_cycle = ['tab:blue', 'tab:orange', 'tab:green', 'tab:brown']

    os.makedirs(plot_dir, exist_ok=True)

    if config.clear_cache:
        set_clear_cache(True)
Exemple #2
0
def run_experiment(name,
                   config,
                   readme,
                   distributions=None,
                   durations=None,
                   alg=None,
                   task="grid",
                   name_variables=None,
                   env_kwargs=None):

    name = sanitize(name)
    durations = durations or {}

    parser = argparse.ArgumentParser()
    parser.add_argument("duration", choices=list(durations.keys()) + ["local"])

    args, _ = parser.parse_known_args()

    _config = DEFAULT_CONFIG.copy()

    env_kwargs = env_kwargs or {}

    env_kwargs['task'] = task
    env_config = get_env_config(**env_kwargs)
    _config.update(env_config)

    if alg:
        alg_config = getattr(alg_module, "{}_config".format(alg))
        _config.update(alg_config)
        alg_name = sanitize(alg_config.alg_name)
    else:
        alg_name = ""

    _config.update(config)
    _config.update_from_command_line()

    _config.env_name = "{}_env={}".format(name, sanitize(env_config.env_name))

    if args.duration == "local":
        _config.exp_name = "alg={}".format(alg_name)
        with _config:
            return training_loop()
    else:
        run_kwargs = Config(
            kind="slurm",
            pmem=5000,
            ignore_gpu=False,
        )

        duration_args = durations[args.duration]

        if 'config' in duration_args:
            _config.update(duration_args['config'])
            del duration_args['config']

        run_kwargs.update(durations[args.duration])
        run_kwargs.update_from_command_line()

    if name_variables is not None:
        name_variables_str = "_".join("{}={}".format(
            sanitize(str(k)), sanitize(str(getattr(_config, k))))
                                      for k in name_variables.split(","))
        _config.env_name = "{}_{}".format(_config.env_name, name_variables_str)

    exp_name = "{}_alg={}_duration={}".format(_config.env_name, alg_name,
                                              args.duration)

    build_and_submit(name=exp_name,
                     config=_config,
                     distributions=distributions,
                     **run_kwargs)
Exemple #3
0
def run_experiment(
        name, base_config, readme, distributions=None, durations=None,
        name_variables=None, alg_configs=None, env_configs=None, late_config=None):

    name = sanitize(name)
    durations = durations or {}

    parser = argparse.ArgumentParser()
    if env_configs is not None:
        parser.add_argument('env')
    if alg_configs is not None:
        parser.add_argument('alg')
    parser.add_argument("duration", choices=list(durations.keys()) + ["local"], default="local", nargs="?")

    args, _ = parser.parse_known_args()

    config = DEFAULT_CONFIG.copy()

    config.update(base_config)

    if env_configs is not None:
        env_config = env_configs[args.env]
        config.update(env_config)

    if alg_configs is not None:
        alg_config = alg_configs[args.alg]
        config.update(alg_config)

    if late_config is not None:
        config.update(late_config)

    config.update_from_command_line()

    env_name = sanitize(config.get('env_name', ''))
    if name:
        config.env_name = "{}_env={}".format(name, env_name)
    else:
        config.env_name = "env={}".format(env_name)
    alg_name = sanitize(config.get("alg_name", ""))

    if args.duration == "local":
        config.exp_name = "alg={}".format(alg_name)
        with config:
            return training_loop()

    run_kwargs = Config(
        kind="slurm",
        pmem=5000,
        ignore_gpu=False,
    )

    duration_args = durations[args.duration]

    if 'config' in duration_args:
        config.update(duration_args['config'])
        del duration_args['config']

    run_kwargs.update(durations[args.duration])
    run_kwargs.update_from_command_line()

    if name_variables is not None:
        name_variables_str = "_".join(
            "{}={}".format(sanitize(str(k)), sanitize(str(getattr(config, k))))
            for k in name_variables.split(","))
        config.env_name = "{}_{}".format(config.env_name, name_variables_str)

    exp_name = "{}_alg={}_duration={}".format(config.env_name, alg_name, args.duration)

    build_and_submit(name=exp_name, config=config, distributions=distributions, **run_kwargs)