gym调用monitor

gym 训练mujoco模块的环境用monitor录制视频,没有录制全屏而且录制出来的是镜像图像,应该怎么调整代码可以修改录制屏幕的位置?
环境win10 gym==0.10.0 mujoco=1.5.0

望采纳


你可以在你的代码中使用 gym.wrappers.Monitor 包装器来记录视频,该包装器允许您指定一个输出路径,并且提供了一些额外的选项,例如是否要记录全屏、是否镜像等。

例如,可以在创建环境时使用 Monitor 包装器,如下所示:

env = gym.make("MyEnv")
env = gym.wrappers.Monitor(env, "./videos", force=True, full_screen=True, video_callable=lambda episode_id: episode_id%10==0)

如有帮助,望采纳

from gym import wrappers, logger
env_id = 'CartPole-v0'
logger.setLevel(logger.ERROR)
env = gym.make(env_id)
outdir = "/tmp/dqn-%s" % env_id

env = wrappers.Monitor(env, directory=outdir, video_callable=lambda episode_id: episode_id % 100 == 0, force=True)  
# video_callable可以设置多少episode记录一次 
#(video_callable=lambda episode_id: True)[reference](https://github.com/openai/gym/issues/494)
# force可强制性地覆盖掉之前生成的记录文件
# train....
env.close()  # close env and write monitor result info to disk 


在强化学习的背景下,“监视器”是一种工具,可让您在代理学习时跟踪其性能。 在 gym.wrappers.Monitor 类用于包装环境,允许录制视频、保存统计信息以及有关智能体与环境交互的其他信息。要使用 Monitor 类,首先要创建它的一个实例,传入要包装的环境以及任何可选参数。

例如:

import gym
from gym.wrappers import Monitor

env = gym.make("CartPole-v0")
env = Monitor(env, "./monitor-output", force=True)

这将创建一个包装 CartPole-v0 环境的新 Monitor 实例。 ./monitor-output 参数指定监视器应保存其输出的目录,force 参数指定监视器应覆盖该目录中的任何现有数据。使用 Monitor 包装环境后,可以像往常一样使用 env.reset()、env.step() 和 env.render() 方法与其交互。 监视器会自动记录有关代理与环境交互的信息,您可以稍后访问此信息以分析代理的性能。