Gym wrappers(补)
本文我们介绍如何用Gym wrappers对我们的环境进行包装,从而将训练过程中的数据以及视频保存下来,我们仅仅介绍简单的使用,复杂的使用我暂时还用不到......
直接上代码:
import gym
from gym import wrappers
env=gym.make('CartPole-v0')
env=wrappers.Monitor(env,'/tmp/cartpole-experiment-1')
for _ in range(20):
observation=env.reset()
for t in range(100):
env.render()
print observation
action=env.action_space.sample()
observation,reward,done,info=env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
运行结果如下所示:
文件中各个文件的意义见Gym小记(六),本文与这篇文章都是在讨论Gym Wrappers,所以这里再拓展一点点......
上面我们已经将数据以及视频记录到了指定文件夹中,如果此时我们在代码中仍然指定同一个文件夹将会出现如下错误:
按照错误中给出的说明,我们可以通过删除掉已经生成的记录文件来解决这一问题,但是每次都这样删除可能比较麻烦,比如说,有时候我们仅仅尝试性的运行一下代码,或是在修改其他地方的错误,然后导致生成了记录文件,就很烦了。所以我们需要寻求一种解决办法,方法很简单,就是在wrappers.Monitor()中传入参数force=True,即可强制性地覆盖掉前面我们生成的记录文件:
env=wrappers.Monitor(env,'/tmp/cartpole-experiment-1',force=True)
就是这么简单~