From 9fd608dbb89227f85271893b1ec5c2a67a8d3371 Mon Sep 17 00:00:00 2001 From: Richard Date: Sat, 12 Jan 2019 05:12:16 -0800 Subject: [PATCH 1/6] catch unbound localerror --- rlkit/launchers/launcher_util.py | 17 +++++++++-------- rlkit/scripts/__init__.py | 0 .../scripts}/run_experiment_from_doodad.py | 0 .../scripts}/sim_goal_conditioned_policy.py | 0 {scripts => rlkit/scripts}/sim_policy.py | 0 {scripts => rlkit/scripts}/sim_tdm_policy.py | 0 6 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 rlkit/scripts/__init__.py rename {scripts => rlkit/scripts}/run_experiment_from_doodad.py (100%) rename {scripts => rlkit/scripts}/sim_goal_conditioned_policy.py (100%) rename {scripts => rlkit/scripts}/sim_policy.py (100%) rename {scripts => rlkit/scripts}/sim_tdm_policy.py (100%) diff --git a/rlkit/launchers/launcher_util.py b/rlkit/launchers/launcher_util.py index d50eb71b9..567f00955 100644 --- a/rlkit/launchers/launcher_util.py +++ b/rlkit/launchers/launcher_util.py @@ -90,7 +90,7 @@ def run_experiment_here( variant=None, exp_id=0, seed=None, - use_gpu=True, + use_gpu=False, # Logger params: exp_prefix="default", snapshot_mode='last', @@ -438,10 +438,10 @@ def run_experiment( skip_wait=False, # ec2 settings sync_interval=180, - region='us-east-1', + region='us-east-2', instance_type=None, spot_price=None, - verbose=False, + verbose=True, num_exps_per_instance=1, # sss settings time_in_mins=None, @@ -565,7 +565,7 @@ def foo(variant): )) except git.exc.InvalidGitRepositoryError: pass - except ImportError: + except (ImportError, UnboundLocalError): git_infos = None run_experiment_kwargs = dict( exp_prefix=exp_prefix, @@ -590,10 +590,10 @@ def foo(variant): """ if mode == 'ec2' or mode == 'gcp': - if not ec2_okayed and not query_yes_no( - "{} costs money. Are you sure you want to run?".format(mode) - ): - sys.exit(1) + # if not ec2_okayed and not query_yes_no( + # "{} costs money. Are you sure you want to run?".format(mode) + # ): + # sys.exit(1) if not gpu_ec2_okayed and use_gpu: if not query_yes_no( "{} is more expensive with GPUs. Confirm?".format(mode) @@ -717,6 +717,7 @@ def foo(variant): gpu=use_gpu, aws_s3_path=aws_s3_path, num_exps=num_exps_per_instance, + **mode_kwargs ) elif mode == 'gcp': diff --git a/rlkit/scripts/__init__.py b/rlkit/scripts/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/scripts/run_experiment_from_doodad.py b/rlkit/scripts/run_experiment_from_doodad.py similarity index 100% rename from scripts/run_experiment_from_doodad.py rename to rlkit/scripts/run_experiment_from_doodad.py diff --git a/scripts/sim_goal_conditioned_policy.py b/rlkit/scripts/sim_goal_conditioned_policy.py similarity index 100% rename from scripts/sim_goal_conditioned_policy.py rename to rlkit/scripts/sim_goal_conditioned_policy.py diff --git a/scripts/sim_policy.py b/rlkit/scripts/sim_policy.py similarity index 100% rename from scripts/sim_policy.py rename to rlkit/scripts/sim_policy.py diff --git a/scripts/sim_tdm_policy.py b/rlkit/scripts/sim_tdm_policy.py similarity index 100% rename from scripts/sim_tdm_policy.py rename to rlkit/scripts/sim_tdm_policy.py From 40450cc19f97600649644f837169f58ccd71f40c Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 13 Jan 2019 11:01:49 -0800 Subject: [PATCH 2/6] update --- rlkit/launchers/launcher_util.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rlkit/launchers/launcher_util.py b/rlkit/launchers/launcher_util.py index 567f00955..73bbb59a5 100644 --- a/rlkit/launchers/launcher_util.py +++ b/rlkit/launchers/launcher_util.py @@ -438,10 +438,10 @@ def run_experiment( skip_wait=False, # ec2 settings sync_interval=180, - region='us-east-2', + region='us-east-1', instance_type=None, spot_price=None, - verbose=True, + verbose=False, num_exps_per_instance=1, # sss settings time_in_mins=None, @@ -590,10 +590,10 @@ def foo(variant): """ if mode == 'ec2' or mode == 'gcp': - # if not ec2_okayed and not query_yes_no( - # "{} costs money. Are you sure you want to run?".format(mode) - # ): - # sys.exit(1) + if not ec2_okayed and not query_yes_no( + "{} costs money. Are you sure you want to run?".format(mode) + ): + sys.exit(1) if not gpu_ec2_okayed and use_gpu: if not query_yes_no( "{} is more expensive with GPUs. Confirm?".format(mode) From 027bae87defc6ec0efd20f9f3e9198078943a25d Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 13 Jan 2019 11:03:12 -0800 Subject: [PATCH 3/6] delete space --- rlkit/launchers/launcher_util.py | 1 - 1 file changed, 1 deletion(-) diff --git a/rlkit/launchers/launcher_util.py b/rlkit/launchers/launcher_util.py index 73bbb59a5..111169446 100644 --- a/rlkit/launchers/launcher_util.py +++ b/rlkit/launchers/launcher_util.py @@ -717,7 +717,6 @@ def foo(variant): gpu=use_gpu, aws_s3_path=aws_s3_path, num_exps=num_exps_per_instance, - **mode_kwargs ) elif mode == 'gcp': From 8d6053e0494e1efd88f40f9e5f7004ff0e053fa7 Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 13 Jan 2019 11:07:31 -0800 Subject: [PATCH 4/6] unicodeerror fix --- rlkit/launchers/launcher_util.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rlkit/launchers/launcher_util.py b/rlkit/launchers/launcher_util.py index 111169446..689776172 100644 --- a/rlkit/launchers/launcher_util.py +++ b/rlkit/launchers/launcher_util.py @@ -291,8 +291,11 @@ def setup_logger( with open(osp.join(log_dir, diff_file_name), "w") as f: f.write(code_diff + '\n') if code_diff_staged is not None and len(code_diff_staged) > 0: - with open(osp.join(log_dir, diff_staged_file_name), "w") as f: + try: f.write(code_diff_staged + '\n') + except UnicodeEncodeError as e: + print(e) + f.write(code_diff_staged.encode('utf-8', 'surrogateescape').decode('ISO-8859-1') + '\n') with open(osp.join(log_dir, "git_infos.txt"), "a") as f: f.write("directory: {}\n".format(directory)) f.write("git hash: {}\n".format(commit_hash)) From b5a522779485d97adc9bfda6224b877aa77d470a Mon Sep 17 00:00:00 2001 From: Richard Date: Sun, 13 Jan 2019 11:09:13 -0800 Subject: [PATCH 5/6] undo line delete --- rlkit/launchers/launcher_util.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rlkit/launchers/launcher_util.py b/rlkit/launchers/launcher_util.py index 689776172..87cb7be55 100644 --- a/rlkit/launchers/launcher_util.py +++ b/rlkit/launchers/launcher_util.py @@ -291,11 +291,12 @@ def setup_logger( with open(osp.join(log_dir, diff_file_name), "w") as f: f.write(code_diff + '\n') if code_diff_staged is not None and len(code_diff_staged) > 0: - try: - f.write(code_diff_staged + '\n') - except UnicodeEncodeError as e: - print(e) - f.write(code_diff_staged.encode('utf-8', 'surrogateescape').decode('ISO-8859-1') + '\n') + with open(osp.join(log_dir, diff_staged_file_name), "w") as f: + try: + f.write(code_diff_staged + '\n') + except UnicodeEncodeError as e: + print(e) + f.write(code_diff_staged.encode('utf-8', 'surrogateescape').decode('ISO-8859-1') + '\n') with open(osp.join(log_dir, "git_infos.txt"), "a") as f: f.write("directory: {}\n".format(directory)) f.write("git hash: {}\n".format(commit_hash)) From 0fe8a63fc63f65f479f7bfba69b5c494db2c17ae Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 4 Mar 2019 02:55:25 -0800 Subject: [PATCH 6/6] Removed rlkit/scripts --- rlkit/scripts/__init__.py | 0 rlkit/scripts/run_experiment_from_doodad.py | 43 ------------- rlkit/scripts/sim_goal_conditioned_policy.py | 62 ------------------- rlkit/scripts/sim_policy.py | 43 ------------- rlkit/scripts/sim_tdm_policy.py | 64 -------------------- 5 files changed, 212 deletions(-) delete mode 100644 rlkit/scripts/__init__.py delete mode 100644 rlkit/scripts/run_experiment_from_doodad.py delete mode 100644 rlkit/scripts/sim_goal_conditioned_policy.py delete mode 100644 rlkit/scripts/sim_policy.py delete mode 100644 rlkit/scripts/sim_tdm_policy.py diff --git a/rlkit/scripts/__init__.py b/rlkit/scripts/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/rlkit/scripts/run_experiment_from_doodad.py b/rlkit/scripts/run_experiment_from_doodad.py deleted file mode 100644 index 1e21c25fa..000000000 --- a/rlkit/scripts/run_experiment_from_doodad.py +++ /dev/null @@ -1,43 +0,0 @@ -import doodad as dd -from rlkit.launchers.launcher_util import run_experiment_here -import torch.multiprocessing as mp - -if __name__ == "__main__": - import matplotlib - matplotlib.use('agg') - - mp.set_start_method('forkserver') - args_dict = dd.get_args() - method_call = args_dict['method_call'] - run_experiment_kwargs = args_dict['run_experiment_kwargs'] - output_dir = args_dict['output_dir'] - run_mode = args_dict.get('mode', None) - if run_mode and run_mode in ['slurm_singularity', 'sss']: - import os - run_experiment_kwargs['variant']['slurm-job-id'] = os.environ.get( - '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: - run_experiment_here( - method_call, - log_dir=output_dir, - **run_experiment_kwargs - ) \ No newline at end of file diff --git a/rlkit/scripts/sim_goal_conditioned_policy.py b/rlkit/scripts/sim_goal_conditioned_policy.py deleted file mode 100644 index 70a48ca35..000000000 --- a/rlkit/scripts/sim_goal_conditioned_policy.py +++ /dev/null @@ -1,62 +0,0 @@ -import argparse -import pickle - -from rlkit.core import logger -from rlkit.samplers.rollout_functions import multitask_rollout -from rlkit.torch import pytorch_util as ptu -from rlkit.envs.vae_wrapper import VAEWrappedEnv - - -def simulate_policy(args): - if args.pause: - import ipdb; ipdb.set_trace() - data = pickle.load(open(args.file, "rb")) - policy = data['policy'] - env = data['env'] - print("Policy and environment loaded") - if args.gpu: - ptu.set_gpu_mode(True) - policy.to(ptu.device) - if isinstance(env, VAEWrappedEnv): - env.mode(args.mode) - if args.enable_render or hasattr(env, 'enable_render'): - # some environments need to be reconfigured for visualization - env.enable_render() - policy.train(False) - paths = [] - while True: - paths.append(multitask_rollout( - env, - policy, - max_path_length=args.H, - animated=not args.hide, - observation_key='observation', - desired_goal_key='desired_goal', - )) - if hasattr(env, "log_diagnostics"): - env.log_diagnostics(paths) - if hasattr(env, "get_diagnostics"): - for k, v in env.get_diagnostics(paths).items(): - logger.record_tabular(k, v) - logger.dump_tabular() - - -if __name__ == "__main__": - - parser = argparse.ArgumentParser() - parser.add_argument('file', type=str, - help='path to the snapshot file') - parser.add_argument('--H', type=int, default=300, - help='Max length of rollout') - parser.add_argument('--speedup', type=float, default=10, - help='Speedup') - parser.add_argument('--mode', default='video_env', type=str, - help='env mode') - parser.add_argument('--gpu', action='store_true') - parser.add_argument('--pause', action='store_true') - parser.add_argument('--enable_render', action='store_true') - parser.add_argument('--multitaskpause', action='store_true') - parser.add_argument('--hide', action='store_true') - args = parser.parse_args() - - simulate_policy(args) diff --git a/rlkit/scripts/sim_policy.py b/rlkit/scripts/sim_policy.py deleted file mode 100644 index 89baf6f68..000000000 --- a/rlkit/scripts/sim_policy.py +++ /dev/null @@ -1,43 +0,0 @@ -from rlkit.samplers.util import rollout -from rlkit.torch.core import PyTorchModule -from rlkit.torch.pytorch_util import set_gpu_mode -import argparse -import joblib -import uuid -from rlkit.core import logger - -filename = str(uuid.uuid4()) - - -def simulate_policy(args): - data = joblib.load(args.file) - policy = data['policy'] - env = data['env'] - print("Policy loaded") - if args.gpu: - set_gpu_mode(True) - policy.cuda() - if isinstance(policy, PyTorchModule): - policy.train(False) - while True: - path = rollout( - env, - policy, - max_path_length=args.H, - animated=True, - ) - if hasattr(env, "log_diagnostics"): - env.log_diagnostics([path]) - logger.dump_tabular() - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('file', type=str, - help='path to the snapshot file') - parser.add_argument('--H', type=int, default=300, - help='Max length of rollout') - parser.add_argument('--gpu', action='store_true') - args = parser.parse_args() - - simulate_policy(args) diff --git a/rlkit/scripts/sim_tdm_policy.py b/rlkit/scripts/sim_tdm_policy.py deleted file mode 100644 index d7b2272a9..000000000 --- a/rlkit/scripts/sim_tdm_policy.py +++ /dev/null @@ -1,64 +0,0 @@ -import argparse -import json - -import joblib -from pathlib import Path - -import rlkit.torch.pytorch_util as ptu -from rlkit.core.eval_util import get_generic_path_information -from rlkit.torch.tdm.sampling import multitask_rollout -from rlkit.core import logger -if __name__ == "__main__": - - parser = argparse.ArgumentParser() - parser.add_argument('file', type=str, help='path to the snapshot file') - parser.add_argument('--H', type=int, default=300, - help='Max length of rollout') - parser.add_argument('--nrolls', type=int, default=1, - help='Number of rollout per eval') - parser.add_argument('--mtau', type=float, help='Max tau value') - parser.add_argument('--gpu', action='store_true') - parser.add_argument('--hide', action='store_true') - args = parser.parse_args() - - data = joblib.load(args.file) - if args.mtau is None: - # Load max tau from variant.json file - variant_path = Path(args.file).parents[0] / 'variant.json' - variant = json.load(variant_path.open()) - try: - max_tau = variant['tdm_kwargs']['max_tau'] - print("Max tau read from variant: {}".format(max_tau)) - except KeyError: - print("Defaulting max tau to 0.") - max_tau = 0 - else: - max_tau = args.mtau - - env = data['env'] - policy = data['policy'] - policy.train(False) - - if args.gpu: - ptu.set_gpu_mode(True) - policy.cuda() - - while True: - paths = [] - for _ in range(args.nrolls): - goal = env.sample_goal_for_rollout() - path = multitask_rollout( - env, - policy, - init_tau=max_tau, - goal=goal, - max_path_length=args.H, - animated=not args.hide, - cycle_tau=True, - decrement_tau=True, - ) - paths.append(path) - env.log_diagnostics(paths) - for key, value in get_generic_path_information(paths).items(): - logger.record_tabular(key, value) - logger.dump_tabular()