Я хочу создать 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