def generate_experiment_kwargs(variant_spec, command_line_args): local_dir = command_line_args.local_dir if command_line_args.mode == 'debug': local_dir = os.path.join(local_dir, 'debug') local_dir = os.path.join(local_dir, command_line_args.universe, command_line_args.domain, command_line_args.task) resources_per_trial = _normalize_trial_resources( command_line_args.resources_per_trial, command_line_args.trial_cpus, command_line_args.trial_gpus, command_line_args.trial_extra_cpus, command_line_args.trial_extra_gpus) upload_dir = (os.path.join( command_line_args.upload_dir, command_line_args.universe, command_line_args.domain, command_line_args.task) if command_line_args.upload_dir else None) datetime_prefix = datetimestamp() experiment_id = '-'.join((datetime_prefix, command_line_args.exp_name)) variant_spec = add_command_line_args_to_variant_spec( variant_spec, command_line_args) if command_line_args.video_save_frequency is not None: assert 'algorithm_params' in variant_spec variant_spec['algorithm_params']['config']['video_save_frequency'] = ( command_line_args.video_save_frequency) def create_trial_name_creator(trial_name_template=None): if not trial_name_template: return None def trial_name_creator(trial): return trial_name_template.format(trial=trial) return trial_name_creator experiment_kwargs = { 'name': experiment_id, 'resources_per_trial': resources_per_trial, 'config': variant_spec, 'local_dir': local_dir, 'num_samples': command_line_args.num_samples, 'upload_dir': upload_dir, 'checkpoint_freq': (variant_spec['run_params']['checkpoint_frequency']), 'checkpoint_at_end': (variant_spec['run_params']['checkpoint_at_end']), 'max_failures': command_line_args.max_failures, 'trial_name_creator': create_trial_name_creator(command_line_args.trial_name_template), 'restore': command_line_args.restore, # Defaults to None } return experiment_kwargs
def unique_cluster_name(args): cluster_name_parts = ( datetimestamp(''), str(uuid.uuid4())[:6], args.domain, args.task ) cluster_name = "-".join(cluster_name_parts).lower() return cluster_name
def get_parser(allow_policy_list=False): parser = argparse.ArgumentParser() parser.add_argument('--universe', type=str, choices=AVAILABLE_UNIVERSES, default=DEFAULT_UNIVERSE) parser.add_argument('--domain', type=str, default=DEFAULT_DOMAIN) parser.add_argument('--task', type=str, default=DEFAULT_TASK) parser.add_argument( '--checkpoint-replay-pool', type=lambda x: bool(strtobool(x)), default=None, help=("Whether a checkpoint should also saved the replay" " pool. If set, takes precedence over" " variant['run_params']['checkpoint_replay_pool']." " Note that the replay pool is saved (and " " constructed) piece by piece so that each" " experience is saved only once.")) parser.add_argument('--algorithm', type=str) if allow_policy_list: parser.add_argument('--policy', type=str, nargs='+', choices=('gaussian', ), default='gaussian') else: parser.add_argument('--policy', type=str, choices=('gaussian', ), default='gaussian') parser.add_argument('--exp-name', type=str, default=datetimestamp()) parser.add_argument('--mode', type=str, default='local') parser.add_argument('--seed', type=int, default=1) parser.add_argument('--run-eagerly', type=lambda x: bool(strtobool(x)), help=("Whether to run tensorflow in eager mode.")) parser.add_argument('--confirm-remote', type=lambda x: bool(strtobool(x)), nargs='?', const=True, default=True, help="Whether or not to query yes/no on remote run.") parser.add_argument('--video-save-frequency', type=int, default=None, help="Save frequency for videos.") parser = add_ray_init_args(parser) parser = add_ray_tune_args(parser) return parser
def get_parser(allow_policy_list=False): parser = argparse.ArgumentParser() parser.add_argument('--env', type=str, required=True) parser.add_argument('--randomized', action="store_true", default=False) parser.add_argument('--use_predictive_model', action="store_true", default=False) parser.add_argument("--observation-mode", required=True, type=str, choices=('pixels', 'pixels_debug')) parser.add_argument("--reward-type", default='reaching') parser.add_argument("--single-obj-reward", type=int, required=True) parser.add_argument("--all-random", type=bool, required=True) parser.add_argument("--trimodal-positions-choice", type=int, default=0) parser.add_argument( "--num-objects", type=int, default=3, ) parser.add_argument("--model-dir", type=str, required=True) parser.add_argument("--num-execution-per-step", type=int, required=True) parser.add_argument( '--checkpoint-replay-pool', type=lambda x: bool(strtobool(x)), default=None, help=("Whether a checkpoint should also saved the replay" " pool. If set, takes precedence over" " variant['run_params']['checkpoint_replay_pool']." " Note that the replay pool is saved (and " " constructed) piece by piece so that each" " experience is saved only once.")) parser.add_argument('--algorithm', type=str) if allow_policy_list: parser.add_argument('--policy', type=str, nargs='+', choices=('gaussian', ), default='gaussian') else: parser.add_argument('--policy', type=str, choices=('gaussian', ), default='gaussian') parser.add_argument('--exp-name', type=str, default=datetimestamp()) parser.add_argument('--mode', type=str, default='local') parser.add_argument('--run-eagerly', type=lambda x: bool(strtobool(x)), help=("Whether to run tensorflow in eager mode.")) parser.add_argument('--confirm-remote', type=lambda x: bool(strtobool(x)), nargs='?', const=True, default=True, help="Whether or not to query yes/no on remote run.") parser.add_argument('--video-save-frequency', type=int, default=None, help="Save frequency for videos.") parser = add_ray_init_args(parser) parser = add_ray_tune_args(parser) return parser