DQN-using-PyTorch-and-ML-Agents icon indicating copy to clipboard operation
DQN-using-PyTorch-and-ML-Agents copied to clipboard

Training Suddenly Stops with Error 'numpy.int64' object has not attribute 'keys'

Open TomasMendozaHN opened this issue 5 years ago • 1 comments

Once i start training, Unity window pops up and i can see the agent moving around at fast speed so everything looks ok. However, after a few seconds this error message shows up:

INFO:unityagents: 'Academy' started successfully! Unity Academy name: Academy Number of Brains: 1 Number of External Brains : 1 Lesson number : 0 Reset Parameters :

Unity brain name: BananaBrain Number of Visual Observations (per agent): 0 Vector Observation space type: continuous Vector Observation space size (per agent): 37 Number of stacked Vector Observation: 1 Vector Action space type: discrete Vector Action space size (per agent): 4 Vector Action descriptions: , , , Episode 1 Average Score: 0.00Traceback (most recent call last): File "train.py", line 177, in env_info = env.step(action)[brain_name] File "C:\Users\Tomas\AppData\Local\conda\conda\envs\Unity\lib\site-packages\unityagents\environment.py", line 322, in step for brain_name in list(vector_action.keys()) + list(memory.keys()) + list(text_action.keys()): AttributeError: 'numpy.int64' object has no attribute 'keys'

Can you please let me know how to fix it? Thanks!

TomasMendozaHN avatar Oct 20 '18 06:10 TomasMendozaHN

To fix this, your action has to be an np.int32. When a random action is selected argmax generate an int64. The solution is to cast it to int so x.astype(int).

dgiunchi avatar Nov 01 '18 17:11 dgiunchi