如何解决模块“gym.wrappers”没有属性“Monitor”?

lea*_*ner 7 reinforcement-learning deepl

进口健身房

\n
if __name__ == "__main__":\n    env = gym.make("CartPole-v0")\n    env = gym.wrappers.Monitor(env, "recording")\n\n    total_reward = 0.0\n    total_steps = 0\n    obs = env.reset()\n\n    while True:\n        action = env.action_space.sample()\n        obs, reward, done, _ = env.step(action)\n        total_reward += reward\n        total_steps += 1\n        if done:\n            break\n\n    print("Episode done in %d steps, total reward %.2f" % (\n        total_steps, total_reward))\n    env.close()\n    env.env.close()\n
Run Code Online (Sandbox Code Playgroud)\n

这些代码来自\xef\xbc\x9aMaxim Lapan。深度强化学习实践

\n

当我运行这些代码时,我得到这个:“gym.wrappers”没有属性“Monitor”

\n

我尝试在谷歌上搜索以找到答案,但我仍然不知道解决问题的方法。

\n

小智 8

看起来他们已经更改了 API 并删除了“Monitor”包装器(https://github.com/openai/gym/releases/tag/0.23.0)。

您可以使用书中的“gym”版本(0.15.3)(例如pip install gym==0.15.3),也可以使用render()更新的环境类的 -method(来自 v0.23.0)。

在后一种情况下,您需要将其包含env.render()到 while 循环中:

    while True:
        action = env.action_space.sample()
        obs, reward, done, _ = env.step(action)
        total_reward += reward
        total_steps += 1
        env.render()
        if done:
            break
Run Code Online (Sandbox Code Playgroud)