如何设置何时录制视频的触发器 open ai gym
how to set a trigger for when to record video open ai gym
我 运行 多集,但只想录制特定的几集。更具体地说,我想要一个输入作为触发器。目前,我的代码是这样的:
env = gym.make("HalfCheetah-v3")
env = gym.wrappers.RecordVideo(env, 'video')
env.reset()
for t in range(200):
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
env.close()
env.reset()
#I only one to record this run
for t in range(200):
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
env.close()
那么,有两集,但我想只录第二集。或者一般来说,我想要一个输入,我可以 select 哪些剧集被录制,哪些剧集没有被录制。
函数 RecordVideo 有一个参数 step_trigger,其形式为:step_trigger: Callable[[int], bool] = None
,但我真的不知道如何使用它。
我发现了另一个问题 here,他们使用 lambda id_episode:True
。我试过了,但没有什么不同,因为我可能没有正确使用它。如果有任何帮助,我将不胜感激。
根据 Wrappers on gym 的文档website,episode/step 触发器应该是一个接受 episode/step 索引和 returns 一个 bool
值的函数。因此,例如,如果你只想录制第二集的视频,包装器应该这样使用:
#record video for the second episode
env = gym.wrappers.RecordVideo(env, 'video', episode_trigger = lambda x: x == 2)
或者,如果您想为每偶数步录制视频:
#record video for every even episodes
env = gym.wrappers.RecordVideo(env, 'video', episode_trigger = lambda x: x % 2 == 0)
我 运行 多集,但只想录制特定的几集。更具体地说,我想要一个输入作为触发器。目前,我的代码是这样的:
env = gym.make("HalfCheetah-v3")
env = gym.wrappers.RecordVideo(env, 'video')
env.reset()
for t in range(200):
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
env.close()
env.reset()
#I only one to record this run
for t in range(200):
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
env.close()
那么,有两集,但我想只录第二集。或者一般来说,我想要一个输入,我可以 select 哪些剧集被录制,哪些剧集没有被录制。
函数 RecordVideo 有一个参数 step_trigger,其形式为:step_trigger: Callable[[int], bool] = None
,但我真的不知道如何使用它。
我发现了另一个问题 here,他们使用 lambda id_episode:True
。我试过了,但没有什么不同,因为我可能没有正确使用它。如果有任何帮助,我将不胜感激。
根据 Wrappers on gym 的文档website,episode/step 触发器应该是一个接受 episode/step 索引和 returns 一个 bool
值的函数。因此,例如,如果你只想录制第二集的视频,包装器应该这样使用:
#record video for the second episode
env = gym.wrappers.RecordVideo(env, 'video', episode_trigger = lambda x: x == 2)
或者,如果您想为每偶数步录制视频:
#record video for every even episodes
env = gym.wrappers.RecordVideo(env, 'video', episode_trigger = lambda x: x % 2 == 0)