环境
系统:Ubuntu19.10
gym
:0.15.7
问题
在运行下列示例后:
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample())
env.close()
画面上没有CartPole(倒立摆),只有一个白板。
分析原因
上面的代码本身没有问题,但是由于倒立摆是在通过随机采样确定动作,所以很容易就达到 terminal state
, 从而完成一次eposide
。此时,为了开始下一个episode
的学习,需要调用env.reset()
重新进行初始化,否则画面上就是一直显示白板。
问题解决
换用如下代码:
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
env.render()
observation, reward, done, info = env.step(env.action_space.sample())
if done:
env.reset()
env.close()
保证画面中始终有的CartPole(即CartPole一直在学习中),如图:
参考
[1] https://github.com/openai/gym/issues/1161