コード例 #1
0
ファイル: test_graph.py プロジェクト: maxiaoba/rlkit
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()
コード例 #2
0
                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]]
コード例 #3
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)