sys.path.append("./multiagent-particle-envs") from make_env import make_env from particle_env_wrapper import ParticleEnv env = ParticleEnv( make_env(args.exp_name, discrete_action_space=False, world_args=world_args)) obs_dim = env.observation_space.low.size action_dim = env.action_space.low.size num_agent = env.num_agent from rlkit.torch.networks.graph_builders import FullGraphBuilder gb = FullGraphBuilder(input_node_dim=obs_dim + action_dim, num_node=num_agent, batch_size=256, contain_self_loop=False) obs1 = env.reset() obs2 = env.reset() obs_batch = torch.tensor([obs1, obs2]) x, edge_index = gb(obs_batch) print('obs_batch: ', obs_batch) print('x: ', x) print('x reshape', x.reshape(2, -1, obs_dim)) print('edge_index: ', edge_index) data = Data(x=x, edge_index=edge_index) ng = pyg_utils.to_networkx(data) networkx.draw_planar(ng) plt.show()
pair_name = '{}-{}'.format(P_paths[p1id], P_paths[p2id]) # print(pair_name) if (pair_name in results[seed].keys()) and (not args.new): print('pass') Cr1 = results[seed][pair_name]['r1'] Cr2 = results[seed][pair_name]['r2'] print('{}: r1: {:.2f}; r2: {:.2f}'.format( pair_name, np.mean(Cr1), np.mean(Cr2))) else: results[seed][pair_name] = {} player1 = players[p1id] player2 = players[p2id] Cr1, Cr2 = [], [] for i in range(sample_num): o_n = env.reset() cr1, cr2 = 0, 0 for step in range(max_path_length): actions = [] for sub_pid in groups[0]: a1, _ = player1[sub_pid].get_action( o_n[sub_pid]) actions.append(a1) for sub_pid in groups[1]: a2, _ = player2[sub_pid].get_action( o_n[sub_pid]) actions.append(a2) o_n, r_n, done, _ = env.step(actions) # env.render() # time.sleep(0.1) cr1 += r_n[groups[0][0]]
args = parser.parse_args() import sys sys.path.append("./multiagent-particle-envs") from make_env import make_env from particle_env_wrapper import ParticleEnv world_args=dict( num_agents=args.num_ag, num_adversaries=args.num_adv, num_landmarks=args.num_l, obsid=False, absobs=True, boundary=([[-1.,-1.],[1.,1.]] if args.boundary else None) ) env = ParticleEnv(make_env(args.exp_name,discrete_action_space=False,world_args=world_args)) o_n = env.reset() num_agent = env.num_agent def check_graph(gb, obs): print('obs: ',obs) if args.single_observe: obs_batch = torch.tensor([obs[0]]) else: obs_batch = torch.tensor([obs]) x, edge_index = gb(obs_batch) print('x: ',x) print('edge_index: ',edge_index) data = Data(x=x, edge_index=edge_index) ng = pyg_utils.to_networkx(data)