我想从自定义初始点启动 OpenAI Gym 的连续山地车环境。OpenAI Gym 没有提供任何方法来做到这一点。我查看了环境的代码,发现有一个属性state保存状态信息。我尝试手动更改该属性。然而,它不起作用。
您可以看到附加的代码,从状态函数返回的观察结果与变量不匹配env.state。
我认为这是一些基本的 Python 问题,不允许我访问该属性。有没有办法访问该属性或其他方式从自定义初始状态开始?我知道我可以从现有代码创建一个自定义环境(像这样)并添加功能。我在 Github 存储库中发现了一个问题,我认为他们也提出了这一点。
import gym
env = gym.make("MountainCarContinuous-v0")
env.reset()
print(env.state)
env.state = np.array([-0.4, 0])
print(env.state)
for i in range(50):
obs, _, _, _ = env.step([1]) # Just taking right in every step
print(obs, env.state) #the observation and env.state is different
env.render()
Run Code Online (Sandbox Code Playgroud)
代码的输出:
[-0.52196493 0. ]
[-0.4 0. ]
[-0.52047719 0.00148775] [-0.4 0. ]
[-0.51751285 0.00296433] [-0.4 0. ]
[-0.51309416 0.00441869] [-0.4 0. …Run Code Online (Sandbox Code Playgroud) 有人知道我们可以设置游戏初始状态的任何 OpenAI Gym 环境吗?例如,我发现 MountainCarContinuous-v0 可以做这样的事情,以便我们可以选择汽车启动的时间点。但是,我正在寻找另一个更复杂的环境。在此先感谢您的帮助!
我想在 OpenAI 环境中修改一些东西。如果我们使用Cartpole示例,那么我们可以编辑类 init 函数中的内容,但使用Box2D它的环境似乎并不那么简单。
例如,考虑BipedalWalker环境。
在这种情况下,我将如何编辑SPEED_HIP或SPEED_KNEE变量之类的内容?