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)
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 )
) 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, ) ) )
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, )
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)
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', ), )
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, )
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, )
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, )
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, )