q.learning / q-таблица с цветами RGB превышает массив numpy? - PullRequest
0 голосов
/ 03 октября 2019

Я хочу создать q-таблицу для изучения q игры Airstriker-Genesis, ретро-тренажерного зала. Пространство наблюдения - это цвета RGB, а пространство действия - 12 значений, 1 с и 0 с. Но когда я создаю случайный заполненный массив numpy, он говорит:

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/numpy/core/fromnumeric.py:90: RuntimeWarning: overflow encountered in reduce
  return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
Traceback (most recent call last):
  File "Robostuff.py", line 14, in <module>
    q_table = np.random.randint(low=0,high=20,size=q_diskrete) + [ len(env.action_space.sample()) ] 
  File "mtrand.pyx", line 630, in numpy.random.mtrand.RandomState.randint
  File "bounded_integers.pyx", line 1237, in numpy.random.bounded_integers._rand_int64
ValueError: maximum supported dimension for an ndarray is 32, found 224

Я почти уверен, что делаю что-то не так, но я не могу сосредоточиться на этом. ТБХ, я думаю, что я не совсем понимаю весь процесс создания q_table практически. Я понимаю, что это любая комбинация наблюдений + действий, которые можно предпринять. Я надеюсь, что это будет сделано, это укрепит мое понимание о том, как «применять» таблицы q.

Вот полный код:

import gym, retro
import numpy as np 

env = retro.make(game='Airstriker-Genesis')

Q = [20,20,20]
q_diskrete = (env.observation_space.high - env.observation_space.low) / Q

q_table = np.random.randint(low=0,high=255,size=(q_diskrete + [ len(env.action_space.sample()) ] ))

done = True

while not done:

    action = env.action_space.sample()
    state, reward, done, info = env.step(action)
    #env.render()


env.close()

, выполняющий это на macOS

...