コード例 #1
0
def test_iql():
    logger.reset()

    # make tests small by mutating variant
    iql.variant["algo_kwargs"]["start_epoch"] = -2
    iql.variant["algo_kwargs"]["num_epochs"] = 2
    iql.variant["algo_kwargs"]["batch_size"] = 2
    iql.variant["algo_kwargs"]["num_eval_steps_per_epoch"] = 2
    iql.variant["algo_kwargs"]["num_expl_steps_per_train_loop"] = 2
    iql.variant["algo_kwargs"]["num_trains_per_train_loop"] = 100
    iql.variant["algo_kwargs"]["min_num_steps_before_training"] = 2
    iql.variant["qf_kwargs"] = dict(hidden_sizes=[2, 2])

    iql.variant["seed"] = 25580

    iql.main()

    reference_csv = "tests/regression/iql/halfcheetah_online_progress.csv"
    output_csv = os.path.join(logger.get_snapshot_dir(), "progress.csv")
    print("comparing reference %s against output %s" %
          (reference_csv, output_csv))
    output = csv_util.get_exp(output_csv)
    reference = csv_util.get_exp(reference_csv)
    keys = [
        "epoch",
        "expl/num steps total",
        "expl/Average Returns",
        "trainer/Q1 Predictions Mean",
    ]
    csv_util.check_equal(reference, output, keys)
コード例 #2
0
def test_sac_online():
    logger.reset()

    # make tests small by mutating variant
    sac.variant["algorithm_kwargs"]["num_epochs"] = 2
    sac.variant["algorithm_kwargs"]["batch_size"] = 2
    sac.variant["algorithm_kwargs"]["num_trains_per_train_loop"] = 100
    sac.variant["qf_kwargs"] = dict(hidden_sizes=[2, 2])
    sac.variant["policy_kwargs"] = dict(hidden_sizes=[2, 2])
    sac.variant["seed"] = 25580

    sac.main()

    reference_csv = "tests/regression/simplegym/test_sac_progress.csv"
    output_csv = os.path.join(logger.get_snapshot_dir(), "progress.csv")
    print("comparing reference %s against output %s" % (reference_csv, output_csv))
    output = csv_util.get_exp(output_csv)
    reference = csv_util.get_exp(reference_csv)
    keys = ["epoch", "expl/num steps total", "eval/Average Returns", "trainer/Q1 Predictions Mean", ]
    csv_util.check_equal(reference, output, keys)
コード例 #3
0
def skewfit_full_experiment_chester(args):
    variant, log_dir, exp_prefix = args
    base_log_dir = log_dir
    logger.reset()
    print("log dir is: ", base_log_dir)

    script_name = main.__file__
    seed = variant['seed']
    actual_log_dir = setup_logger(
        exp_prefix=exp_prefix,
        variant=variant,
        exp_id=0,
        seed=seed,
        snapshot_mode='gap_and_last',
        snapshot_gap=25,
        log_dir=base_log_dir,
        script_name=script_name,
    )

    variant = variant['variant']

    if torch.cuda.is_available():
        use_gpu = True
    else:
        use_gpu = False

    set_gpu_mode(use_gpu)

    torch.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False
    np.random.seed(seed)
 
    variant['skewfit_variant']['save_vae_data'] = True
    full_experiment_variant_preprocess(variant)
    train_vae_and_update_variant(variant)
    skewfit_experiment(variant['skewfit_variant'])
コード例 #4
0
def reset_execution_environment():
    """
    Call this between calls to separate experiments.
    :return:
    """
    logger.reset()