调整由4个帧组成的健身房环境(atari环境)的状态



我正在开发一个基于DQN的自治代理。我正在使用健身房库来制作我想要测试的环境,但我一直在处理状态的框架。健身房环境使用FrameStack包装返回的状态具有以下观察空间:

env = gym.make('Bowling-v0')
env = gym.wrappers.FrameStack(env, 4)
print(env.observation_space)
Box(0, 255, (4, 210, 160, 3), uint8)

我希望观察空间为Box(0, 255, (4, 88, 80, 1), uint8)。我该怎么办?我试着使用另一个类似的包装器:

env = gym.wrappers.ResizeObservation(env, (4, 88, 80, 1))
print(env.observation_space)

但得到的观测空间是CCD_ 2。我做错了什么?

已修复!我只是做的方式不对。

env = gym.make('Bowling-v0')
print(env.observation_space)
Box(0, 255, (210, 160, 3), uint8)

必须首先应用调整大小,然后仅在调整大小之后应用堆叠

env = gym.wrappers.ResizeObservation(env, (88, 80))
print(env.observation_space)
Box(0, 255, (88, 80, 3), uint8)

所以现在我们可以使用FrameStack包装进行堆叠

env = gym.wrappers.FrameStack(env, 4)
print(env.observation_space)
Box(0, 255, (4, 88, 80, 3), uint8)

最新更新