调整由 4 帧组成的健身房环境的状态(atari 环境)
Resize a state of a gym environment composed by 4 frames (atari environment)
我正在开发一个基于 DQN 的自治代理。我正在使用健身房库来制作我想要测试的环境,但我一直在处理状态帧。使用 FrameStack 包装器的健身房环境 returns 具有以下观察结果 space:
env = gym.make('Bowling-v0')
env = gym.wrappers.FrameStack(env, 4)
print(env.observation_space)
Box(0, 255, (4, 210, 160, 3), uint8)
我希望观察 space 成为 Box(0, 255, (4, 88, 80, 1), uint8)
。我能怎么做?我试过像这样使用另一个包装器:
env = gym.wrappers.ResizeObservation(env, (4, 88, 80, 1))
print(env.observation_space)
但观察 space 结果是 Box(0, 255, (4, 88, 80, 1, 160, 3), uint8)
。我做错了什么?
已修复!我只是做错了。
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)
我正在开发一个基于 DQN 的自治代理。我正在使用健身房库来制作我想要测试的环境,但我一直在处理状态帧。使用 FrameStack 包装器的健身房环境 returns 具有以下观察结果 space:
env = gym.make('Bowling-v0')
env = gym.wrappers.FrameStack(env, 4)
print(env.observation_space)
Box(0, 255, (4, 210, 160, 3), uint8)
我希望观察 space 成为 Box(0, 255, (4, 88, 80, 1), uint8)
。我能怎么做?我试过像这样使用另一个包装器:
env = gym.wrappers.ResizeObservation(env, (4, 88, 80, 1))
print(env.observation_space)
但观察 space 结果是 Box(0, 255, (4, 88, 80, 1, 160, 3), uint8)
。我做错了什么?
已修复!我只是做错了。
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)