示例#1
0
def main(config, gpu, docker, debug, exp_id, seed):

    variant = default_config
    if config:
        with open(os.path.join(config)) as f:
            exp_params = json.load(f)
        variant = deep_update_dict(exp_params, variant)
    variant['util_params']['gpu_id'] = gpu

    # experiment(variant)
    run_experiment_here(experiment, variant=variant, exp_id=exp_id, seed=seed)
示例#2
0
 def run_experiment_with_multiple_seeds(variant):
     scores = []
     for i in range(n_seeds):
         variant['seed'] = str(int(variant['seed']) + i)
         exp_prefix = variant['exp_prefix']
         scores.append(
             run_experiment_here(
                 get_ocm_score,
                 exp_prefix=exp_prefix,
                 variant=variant,
                 exp_id=i,
             ))
     return np.mean(scores)
         'SLURM_JOB_ID', None
     )
 if run_mode and run_mode == 'ec2':
     try:
         import urllib.request
         instance_id = urllib.request.urlopen(
             'http://169.254.169.254/latest/meta-data/instance-id'
         ).read().decode()
         run_experiment_kwargs['variant']['EC2_instance_id'] = instance_id
     except Exception as e:
         print("Could not get instance ID. Error was...")
         print(e)
 if run_mode and (run_mode == 'ec2' or run_mode == 'gcp'):
     # Do this in case base_log_dir was already set
     run_experiment_kwargs['base_log_dir'] = output_dir
     run_experiment_here(
         method_call,
         include_exp_prefix_sub_dir=False,
         **run_experiment_kwargs
     )
 else:
     # print("re kwargs")
     # print(run_experiment_kwargs)
     # print('run experiment from doodad / import mujoco')
     # import mujoco_py
     # print("import success")
     run_experiment_here(
         method_call,
         log_dir=output_dir,
         **run_experiment_kwargs
     )
示例#4
0
    )

    n_seeds = 1
    mode = 'local'
    exp_prefix = 'dev-{}'.format(
        __file__.replace('/', '-').replace('_', '-').split('.')[0]
    )

    n_seeds = 3
    mode = 'ec2'
    exp_prefix = 'rlkit-skew-fit-pusher-reference-sample-from-true-prior-take2'

    for exp_id, variant in enumerate(sweeper.iterate_hyperparameters()):
        for _ in range(n_seeds):
            run_experiment_here(
                skewfit_full_experiment,
                exp_prefix=exp_prefix,
                mode=mode,
                variant=variant,
                use_gpu=True,
                num_exps_per_instance=3,
                gcp_kwargs=dict(
                    terminate=True,
                    zone='us-east1-c',
                    gpu_kwargs=dict(
                        gpu_model='nvidia-gtx-1080',
                        num_gpu=1,
                    )
                )
          )
示例#5
0
            vae_kwargs=dict(
                decoder_distribution="gaussian_identity_variance",
                input_channels=3,
                architecture=imsize48_default_architecture,
            ),
            algo_kwargs=dict(lr=1e-3),
            save_period=1,
        ),
    )

    search_space = {}
    sweeper = hyp.DeterministicHyperparameterSweeper(
        search_space, default_parameters=variant
    )

    n_seeds = 1
    mode = "local"
    exp_prefix = "dev-{}".format(
        __file__.replace("/", "-").replace("_", "-").split(".")[0]
    )

    for exp_id, variant in enumerate(sweeper.iterate_hyperparameters()):
        for _ in range(n_seeds):
            run_experiment_here(
                skewfit_full_experiment,
                exp_prefix=exp_prefix,
                variant=variant,
                use_gpu=False,
            )

示例#6
0
    algorithm.train()


if __name__ == '__main__':
    variant = dict(
        algorithm="DQN",  #
        version="normal",
        layer_size=256,
        replay_buffer_size=int(1E6),
        algorithm_kwargs=dict(
            num_epochs=600,
            num_eval_steps_per_epoch=1000,
            num_trains_per_train_loop=200,
            num_expl_steps_per_train_loop=1000,
            min_num_steps_before_training=3000,
            max_path_length=1000,
            batch_size=1024,
        ),
        trainer_kwargs=dict(
            discount=0.99,
            learning_rate=3E-4,
        ),
    )

    run_experiment_here(experiment,
                        variant=variant,
                        use_gpu=True,
                        exp_prefix='Test',
                        snapshot_mode='last',
                        snapshot_gap=5)
示例#7
0
    sweeper = hyp.DeterministicHyperparameterSweeper(
        search_space, default_parameters=variant,
    )

    n_seeds = 1
    mode = 'local'
    exp_prefix = 'dev-{}'.format(
        __file__.replace('/', '-').replace('_', '-').split('.')[0]
    )

    # n_seeds = 3
    # mode = 'gcp'
    # exp_prefix = 'skew-fit-pickup-reference-post-refactor'

    for exp_id, variant in enumerate(sweeper.iterate_hyperparameters()):
        for _ in range(n_seeds):
            run_experiment_here(
                skewfit_full_experiment,
                exp_prefix=exp_prefix,
                mode=mode,
                variant=variant,
                use_gpu=True,
                snapshot_gap=200,
                snapshot_mode='gap_and_last',
                num_exps_per_instance=3,
                gcp_kwargs=dict(
                    zone='us-west1-b',
                ),

            )
示例#8
0
            vae_kwargs=dict(
                decoder_distribution='gaussian_identity_variance',
                input_channels=3,
                architecture=imsize48_default_architecture,
            ),
            algo_kwargs=dict(lr=1e-3, ),
            save_period=1,
        ),
    )

    search_space = {}
    sweeper = hyp.DeterministicHyperparameterSweeper(
        search_space,
        default_parameters=variant,
    )

    n_seeds = 1
    mode = 'local'
    exp_prefix = 'dev-{}'.format(
        __file__.replace('/', '-').replace('_', '-').split('.')[0])

    for exp_id, variant in enumerate(sweeper.iterate_hyperparameters()):
        for _ in range(n_seeds):
            run_experiment_here(
                skewfit_full_experiment,
                exp_prefix=exp_prefix,
                mode=mode,
                variant=variant,
                use_gpu=True,
            )
示例#9
0
def example(*_):
    env = HalfCheetahEnv()
    es = OUStrategy(env_spec=env.spec)
    qf = FeedForwardCritic(
        name_or_scope="critic",
        env_spec=env.spec,
    )
    policy = FeedForwardPolicy(
        name_or_scope="actor",
        env_spec=env.spec,
    )
    algorithm = DDPG(
        env,
        es,
        policy,
        qf,
        n_epochs=25,
        epoch_length=1000,
        batch_size=1024,
    )
    algorithm.train()


if __name__ == "__main__":
    run_experiment_here(
        example,
        exp_prefix="3-5-profile-ddpg-half-cheetah",
        seed=2,
    )
示例#10
0
                max_path_length=max_path_length,
                # qf_learning_rate=1e-1,
                # policy_learning_rate=1e-1,
            )
            variant = dict(
                H=H,
                num_values=num_values,
                exp_prefix=exp_prefix,
                ddpg_params=ddpg_params,
            )
            for seed in range(n_seeds):
                variant['seed'] = seed
                variant['exp_id'] = exp_id

                if USE_EC2:
                    run_experiment(
                        run_linear_ocm_exp,
                        exp_prefix=exp_prefix,
                        seed=seed,
                        mode="ec2",
                        variant=variant,
                    )
                else:
                    run_experiment_here(
                        run_linear_ocm_exp,
                        exp_prefix=exp_prefix,
                        variant=variant,
                        exp_id=exp_id,
                        seed=seed,
                    )
示例#11
0
                instance_id = urllib.request.urlopen(
                    'http://169.254.169.254/latest/meta-data/instance-id'
                ).read().decode()
                doodad_config.extra_launch_info[
                    'EC2_instance_id'] = instance_id
            except Exception as e:
                print("Could not get AWS instance ID. Error was...")
                print(e)
        if run_mode == 'gcp':
            try:
                import urllib.request
                request = urllib.request.Request(
                    "http://metadata/computeMetadata/v1/instance/name", )
                # See this URL for why we need this header:
                # https://cloud.google.com/compute/docs/storing-retrieving-metadata
                request.add_header("Metadata-Flavor", "Google")
                instance_name = urllib.request.urlopen(request).read().decode()
                doodad_config.extra_launch_info['GCP_instance_name'] = (
                    instance_name)
            except Exception as e:
                print("Could not get GCP instance name. Error was...")
                print(e)
        # Do this in case base_log_dir was already set
        doodad_config = doodad_config._replace(base_log_dir=output_dir, )

    run_experiment_here(
        method_call,
        doodad_config,
        variant,
    )