def run_everything(prefix, args):
    params = load_params(prefix)
    init_level(prefix, 1)
    experiments.run_jobs(evaluation_jobs(prefix, 1), args, evaluation_key(prefix, 1))
    collect_scores_for_level(prefix, 1)
    for level in range(2, params.search_depth + 1):
        init_level(prefix, level)
        experiments.run_jobs(initial_samples_jobs(prefix, level), args, initial_samples_key(prefix, level))
        experiments.run_jobs(evaluation_jobs(prefix, level), args, evaluation_key(prefix, level))
        collect_scores_for_level(prefix, level)
    experiments.run_jobs(final_model_jobs(prefix), args, final_model_key(prefix))
def run_everything(prefix, args):
    params = load_params(prefix)
    init_level(prefix, 1)
    experiments.run_jobs(evaluation_jobs(prefix, 1), args,
                         evaluation_key(prefix, 1))
    collect_scores_for_level(prefix, 1)
    for level in range(2, params.search_depth + 1):
        init_level(prefix, level)
        experiments.run_jobs(initial_samples_jobs(prefix, level), args,
                             initial_samples_key(prefix, level))
        experiments.run_jobs(evaluation_jobs(prefix, level), args,
                             evaluation_key(prefix, level))
        collect_scores_for_level(prefix, level)
    experiments.run_jobs(final_model_jobs(prefix), args,
                         final_model_key(prefix))
def main():
    global guider_sess
    command = sys.argv[1]
    parser = argparse.ArgumentParser()
    parser.add_argument('command')
    # Synthetic Data
    start_time = time.perf_counter()

    if command == 'generate':
        parser.add_argument('--debug', action='store_true', default=False)
        parser.add_argument('--search_depth',
                            type=int,
                            default=DEFAULT_SEARCH_DEPTH)
        parser.add_argument('--prefix', type=str, default=DEFAULT_PREFIX)
        args = parser.parse_args()
        init_experiment(args.prefix, args.debug, args.search_depth)

    elif command == 'init':
        parser.add_argument('level', type=int)
        parser.add_argument('--prefix', type=str, default=DEFAULT_PREFIX)
        experiments.add_scheduler_args(parser)
        args = parser.parse_args()
        init_level(args.prefix, args.level)
        if args.level > 1:
            experiments.run_jobs(initial_samples_jobs(args.prefix, args.level),
                                 args,
                                 initial_samples_key(args.prefix, args.level))

    elif command == 'eval':
        parser.add_argument('level', type=int)
        parser.add_argument('--prefix', type=str, default=DEFAULT_PREFIX)
        experiments.add_scheduler_args(parser)
        args = parser.parse_args()
        experiments.run_jobs(evaluation_jobs(args.prefix, args.level), args,
                             evaluation_key(args.prefix, args.level))
        collect_scores_for_level(args.prefix, args.level)

    elif command == 'final':
        parser.add_argument('level', type=int)
        parser.add_argument('--prefix', type=str, default=DEFAULT_PREFIX)
        experiments.add_scheduler_args(parser)
        args = parser.parse_args()
        experiments.run_jobs(final_model_jobs(args.prefix, args.level), args,
                             final_model_key(args.prefix))

    elif command == 'everything':
        start_time = time.perf_counter()
        parser.add_argument('--prefix', type=str, default=DEFAULT_PREFIX)
        experiments.add_scheduler_args(parser)
        args = parser.parse_args()
        run_everything(args.prefix, args)
        save_report(args.prefix)
        end_time = time.perf_counter() - start_time
        print("Total time ellapsed: %f s" % end_time)
    else:
        raise RuntimeError('Unknown command: %s' % command)
    if command == "generate":
        parser.add_argument("--debug", action="store_true", default=False)
        parser.add_argument("--search_depth", type=int, default=DEFAULT_SEARCH_DEPTH)
        parser.add_argument("--prefix", type=str, default=DEFAULT_PREFIX)
        args = parser.parse_args()
        init_experiment(args.prefix, args.debug, args.search_depth)

    elif command == "init":
        parser.add_argument("level", type=int)
        parser.add_argument("--prefix", type=str, default=DEFAULT_PREFIX)
        experiments.add_scheduler_args(parser)
        args = parser.parse_args()
        init_level(args.prefix, args.level)
        if args.level > 1:
            experiments.run_jobs(
                initial_samples_jobs(args.prefix, args.level), args, initial_samples_key(args.prefix, args.level)
            )

    elif command == "eval":
        parser.add_argument("level", type=int)
        parser.add_argument("--prefix", type=str, default=DEFAULT_PREFIX)
        experiments.add_scheduler_args(parser)
        args = parser.parse_args()
        experiments.run_jobs(evaluation_jobs(args.prefix, args.level), args, evaluation_key(args.prefix, args.level))
        collect_scores_for_level(args.prefix, args.level)

    elif command == "final":
        parser.add_argument("level", type=int)
        parser.add_argument("--prefix", type=str, default=DEFAULT_PREFIX)
        experiments.add_scheduler_args(parser)
        args = parser.parse_args()