def main(): parser = argparse.ArgumentParser() parser.add_argument('filename', type=str) # defaultIS.h5/snapshots/iter0000480 parser.add_argument('--vid', type=str, default='/tmp/madrl.mp4') parser.add_argument('--deterministic', action='store_true', default=False) parser.add_argument('--heuristic', action='store_true', default=False) parser.add_argument('--evaluate', action='store_true', default=False) parser.add_argument('--n_trajs', type=int, default=20) parser.add_argument('--n_steps', type=int, default=500) parser.add_argument('--same_con_pol', action='store_true') args = parser.parse_args() fh = FileHandler(args.filename) env_map = TwoDMaps.rectangle_map( *map(int, fh.train_args['map_size'].split(','))) map_pool = [env_map] # map_pool = np.load( # os.path.join('/scratch/megorov/deeprl/MADRL/runners/maps/', os.path.basename(fh.train_args[ # 'map_file']))) env = PursuitEvade(map_pool, n_evaders=fh.train_args['n_evaders'], n_pursuers=fh.train_args['n_pursuers'], obs_range=fh.train_args['obs_range'], n_catch=fh.train_args['n_catch'], urgency_reward=fh.train_args['urgency'], surround=bool(fh.train_args['surround']), sample_maps=bool(fh.train_args['sample_maps']), flatten=bool(fh.train_args['flatten']), reward_mech='global', catchr=fh.train_args['catchr'], term_pursuit=fh.train_args['term_pursuit']) if fh.train_args['buffer_size'] > 1: env = ObservationBuffer(env, fh.train_args['buffer_size']) hpolicy = None if args.heuristic: from heuristics.pursuit import PursuitHeuristicPolicy hpolicy = PursuitHeuristicPolicy(env.agents[0].observation_space, env.agents[0].action_space) if args.evaluate: minion = Evaluator(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, 'heuristic' if args.heuristic else fh.mode) evr = minion(fh.filename, file_key=fh.file_key, same_con_pol=args.same_con_pol, hpolicy=hpolicy) from tabulate import tabulate print(evr) print(tabulate(evr, headers='keys')) else: minion = Visualizer(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, fh.mode) rew, info = minion(fh.filename, file_key=fh.file_key, vid=args.vid) pprint.pprint(rew) pprint.pprint(info)
def main(): parser = argparse.ArgumentParser() parser.add_argument('filename', type=str) # defaultIS.h5/snapshots/iter0000480 parser.add_argument('--vid', type=str, default='/tmp/madrl.mp4') parser.add_argument('--deterministic', action='store_true', default=False) parser.add_argument('--heuristic', action='store_true', default=False) parser.add_argument('--evaluate', action='store_true', default=False) parser.add_argument('--n_trajs', type=int, default=10) parser.add_argument('--n_steps', type=int, default=500) parser.add_argument('--same_con_pol', action='store_true') args = parser.parse_args() fh = FileHandler(args.filename) env = MAWaterWorld( fh.train_args['n_pursuers'], fh.train_args['n_evaders'], fh.train_args['n_coop'], fh.train_args['n_poison'], n_sensors=fh.train_args['n_sensors'], food_reward=fh.train_args['food_reward'], poison_reward=fh.train_args['poison_reward'], reward_mech='global', encounter_reward=0, #fh.train_args['encounter_reward'], addid=True, ) if fh.train_args['buffer_size'] > 1: env = ObservationBuffer(env, fh.train_args['buffer_size']) hpolicy = None if args.heuristic: from heuristics.waterworld import WaterworldHeuristicPolicy hpolicy = WaterworldHeuristicPolicy(env.agents[0].observation_space, env.agents[0].action_space) if args.evaluate: minion = Evaluator(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, 'heuristic' if args.heuristic else fh.mode) evr = minion(fh.filename, file_key=fh.file_key, same_con_pol=args.same_con_pol, hpolicy=hpolicy) from tabulate import tabulate print(tabulate(evr, headers='keys')) else: minion = Visualizer(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, 'heuristic' if args.heuristic else fh.mode) rew, info = minion(fh.filename, file_key=fh.file_key, vid=args.vid, hpolicy=hpolicy) pprint.pprint(rew) pprint.pprint(info)
def main(): parser = argparse.ArgumentParser() parser.add_argument('filename', type=str) parser.add_argument('--vid', type=str, default='madrl.mp4') parser.add_argument('--deterministic', action='store_true', default=False) parser.add_argument('--heuristic', action='store_true', default=False) parser.add_argument('--evaluate', action='store_true', default=True) parser.add_argument('--n_trajs', type=int, default=20) parser.add_argument('--n_steps', type=int, default=20) parser.add_argument('--same_con_pol', action='store_true') args = parser.parse_args() fh = FileHandler(args.filename) if fh.train_args['map_file'] is not None: map_pool = np.load( os.path.join('', os.path.basename(fh.train_args[ 'map_file']))) else: if fh.train_args['map_type'] == 'rectangle': env_map = TwoDMaps.rectangle_map(*map(int, fh.train_args['map_size'].split(','))) elif args.map_type == 'complex': env_map = TwoDMaps.complex_map(*map(int, fh.train_args['map_size'].split(','))) else: raise NotImplementedError() map_pool = [env_map] env = PursuitEvade(map_pool, n_evaders=fh.train_args['n_evaders'], n_pursuers=fh.train_args['n_pursuers'], obs_range=fh.train_args['obs_range'], n_catch=fh.train_args['n_catch'], urgency_reward=fh.train_args['urgency'], surround=bool(fh.train_args['surround']), sample_maps=bool(fh.train_args['sample_maps']), flatten=bool(fh.train_args['flatten']), reward_mech='global', catchr=fh.train_args['catchr'], term_pursuit=fh.train_args['term_pursuit']) if fh.train_args['buffer_size'] > 1: env = ObservationBuffer(env, fh.train_args['buffer_size']) hpolicy = None if args.evaluate: minion = Evaluator(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, 'heuristic' if args.heuristic else fh.mode) evr = minion(fh.filename, file_key=fh.file_key, same_con_pol=args.same_con_pol, hpolicy=hpolicy) print(evr) print(tabulate(evr, headers='keys')) else: minion = Visualizer(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, fh.mode) rew, info = minion(fh.filename, file_key=fh.file_key, vid=args.vid) pprint.pprint(rew) pprint.pprint(info)
def main(): parser = argparse.ArgumentParser() parser.add_argument('filename', type=str) # defaultIS.h5/snapshots/iter0000480 parser.add_argument('--vid', type=str, default='/tmp/madrl.mp4') parser.add_argument('--deterministic', action='store_true', default=False) parser.add_argument('--heuristic', action='store_true', default=False) parser.add_argument('--evaluate', action='store_true', default=False) parser.add_argument('--save_file', type=str, default=None) parser.add_argument('--n_trajs', type=int, default=20) parser.add_argument('--n_steps', type=int, default=500) parser.add_argument('--same_con_pol', action='store_true') args = parser.parse_args() fh = FileHandler(args.filename) env = MultiAnt(n_legs=fh.train_args['n_legs'], ts=fh.train_args['ts'], integrator=fh.train_args['integrator'], out_file=fh.train_args['out_file'], base_file=fh.train_args['base_file'], reward_mech=fh.train_args['reward_mech']) if fh.train_args['buffer_size'] > 1: env = ObservationBuffer(env, fh.train_args['buffer_size']) hpolicy = None if args.evaluate: minion = Evaluator(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, 'heuristic' if args.heuristic else fh.mode) evr = minion(fh.filename, file_key=fh.file_key, same_con_pol=args.same_con_pol, hpolicy=hpolicy) if args.save_file: pickle.dump(evr, open(args.save_file, "wb")) from tabulate import tabulate #print(tabulate(evr, headers='keys')) else: minion = Visualizer(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, fh.mode) rew, info = minion(fh.filename, file_key=fh.file_key, vid=args.vid) pprint.pprint(rew) pprint.pprint(info)
def main(): parser = argparse.ArgumentParser() parser.add_argument('filename', type=str) # defaultIS.h5/snapshots/iter0000480 parser.add_argument('--vid', type=str, default='/tmp/madrl.mp4') parser.add_argument('--deterministic', action='store_true', default=False) parser.add_argument('--heuristic', action='store_true', default=False) parser.add_argument('--evaluate', action='store_true', default=False) parser.add_argument('--n_trajs', type=int, default=20) parser.add_argument('--n_steps', type=int, default=500) parser.add_argument('--same_con_pol', action='store_true') args = parser.parse_args() fh = FileHandler(args.filename) env = MultiWalkerEnv(fh.train_args['n_walkers'], fh.train_args['position_noise'], fh.train_args['angle_noise'], reward_mech='global') #fh.train_args['reward_mech']) if fh.train_args['buffer_size'] > 1: env = ObservationBuffer(env, fh.train_args['buffer_size']) hpolicy = None if args.heuristic: from heuristics.multiwalker import MultiwalkerHeuristicPolicy hpolicy = MultiwalkerHeuristicPolicy(env.agents[0].observation_space, env.agents[0].action_space) if args.evaluate: minion = Evaluator(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, 'heuristic' if args.heuristic else fh.mode) evr = minion(fh.filename, file_key=fh.file_key, same_con_pol=args.same_con_pol, hpolicy=hpolicy) from tabulate import tabulate print(tabulate(evr, headers='keys')) else: minion = Visualizer(env, fh.train_args, args.n_steps, args.n_trajs, args.deterministic, fh.mode) rew, info = minion(fh.filename, file_key=fh.file_key, vid=args.vid) pprint.pprint(rew) pprint.pprint(info)