8

有没有办法在录制的同时禁用 OpenAI 健身房中的视频渲染?

当我使用 atari 环境和Monitor包装器时,默认行为是不渲染视频(视频仍被记录并保存到磁盘)。但是,在简单的环境中,例如MountainCarContinuous-v0, CartPole-v0, Pendulum-v0,渲染视频是默认行为,我找不到如何禁用它(我仍然想将它保存到磁盘)。

我在服务器上运行我的作业,官方建议的解决方法xvfb不起作用。我看到很多人都遇到了问题,因为它与 nvidia 驱动程序发生冲突。我找到的最常见的解决方案是重新安装 nvidia 驱动程序,但我不能这样做,因为我没有对服务器的 root 访问权限。

4

2 回答 2

5

是的,你在 gym.wrappers.Monitor() 中有 video_callable =False kwarg

import gym

from gym import wrappers

env = gym.make(env_name) # env_name = "Pendulum-v0"

env = wrappers.Monitor(env, aigym_path, video_callable=False ,force=True)

那么你想使用

s = env.reset() # do this for initial time-step of each episode
s_next, reward, done = env.step(a) # do this for every time-step with action 'a'

运行你的剧集

于 2018-06-14T21:58:11.557 回答
1

在调用之前调用此函数env.render(),因为在您第一次调用之前未导入渲染render(),并且此函数将替换默认查看器构造函数。

def disable_view_window():
    from gym.envs.classic_control import rendering
    org_constructor = rendering.Viewer.__init__

    def constructor(self, *args, **kwargs):
        org_constructor(self, *args, **kwargs)
        self.window.set_visible(visible=False)

    rendering.Viewer.__init__ = constructor

于 2020-05-09T09:39:49.840 回答