【发布时间】:2021-05-24 14:58:50
【问题描述】:
我正在开发基于 DQN 的自治代理。我正在使用健身房库来制作我想要测试的环境,但我一直在处理状态帧。使用 FrameStack 包装器,gym 环境返回的状态具有以下观察空间:
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)
但是得到的观察空间是Box(0, 255, (4, 88, 80, 1, 160, 3), uint8)。我做错了什么?
【问题讨论】:
-
观察空间的形状反映了您从环境中返回的图像。如果要调整它的大小,则需要在目标维度中具有相同大小的输入。换句话说,
210*160*3 != 88*80*1。您要问的是将 210x160x3 图像转换为 88x80x1 图像。您需要一些自定义转换功能来做到这一点。或者尝试将 DQN 的输入层更改为 210x160x3。
标签: python wrapper environment openai-gym atari-2600