livey / scalable_maddpg

scalable multi agents reinforcement learning
54 stars 13 forks source link

TypeError: tuple indices must be integers or slices, not tuple #3

Open oatuy opened 6 years ago

oatuy commented 6 years ago

Hello.

Thanks for your codes, but I got some errors.

I’m using your env.py, so I renamed the env folder and changed from env import envs to import env as envs. Is it correct?

Since I only have CPU, I change self.sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) to self.sess = tf.Session() But maybe this is not related to the errors.

When I ran the codes, I get such errors:

Traceback (most recent call last):
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydev_run_in_console.py", line 53, in run_file
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File “xx/scalable_maddpg/main.py", line 44, in <module>
    action = maddpg.noise_action(current_state)
  File “xx/scalable_maddpg/maddpg.py", line 158, in noise_action
    action = self.action(state)
  File “xx/scalable_maddpg/maddpg.py", line 138, in action
    action[ii,:] = self.agents[ii].action(state[ii,:])
TypeError: tuple indices must be integers or slices, not tuple

I tried to solve it by changing action[ii,:] = self.agents[ii].action(state[ii,:]) to action[ii,:] = self.agents[ii].action(state[ii]), but it lead to other errors.

Do you have some idea of the errors? Thank you.

livey commented 6 years ago

Since you are using the env.py as the environment, the prey policy should be implemented outside the environment by yourself. This is a little different from the modified gym environment which we implement the prey policy inside the environment. You can refer this repository to see how to use env.py correctly.

I am not sure whether this is caused by the environment.

dcy0324 commented 4 years ago

Hello! I got the same error when running the main.py main_add_agents.py, slow_replay.py files, as shown below: Traceback (most recent call last):    File "main.py", line 16, in      Env = envs.Environ (num_agents, max_edge)    File "/home/dcy/MADDPG/scalable_maddpg-master/env/envs.py", line 23, in init      = self.create_env (num_agents,)    File "/home/dcy/MADDPG/scalable_maddpg-master/env/envs.py", line 37, in create_env      shared_viewer = False)    File "env / multiagent / environment.py", line 71, in init      self.observation_space.append (spaces.Box (low = -np.inf, high = + np.inf, shape = (obs_dim),))    File "/home/dcy/anaconda3/lib/python3.6/site-packages/gym/spaces/box.py", line 34, in init      gym.Space . init (self, shape, dtype)    File "/home/dcy/anaconda3/lib/python3.6/site-packages/gym/core.py", line 202, in init      self.shape = None if shape is None else tuple (shape) TypeError: 'int' object is not iterable Excuse me, what is the reason for this?

livey commented 4 years ago

Would you please delete the env folder and try our env.py implementation. You can refer this repository .