如何使用 nvidia-docker 正确运行 OpenAI 健身房并查看环境

Awo*_*ing 5 vnc opengl python3 docker nvidia-geforce

所以我正在尝试在 docker 容器中设置运行 OpenAI 健身房,但它看起来像这样: 在此处输入图片说明

请注意 pong 窗口有一个奇怪的渲染问题,它在重复事情并且颜色关闭。(实际上,如果您查看 env.reset() 返回的数组,您可以看到像素值,因此问题在于渲染,而不是 x 转发。这是空间入侵者:

在此处输入图片说明

我的设置非常简单。- 我在本地 ubuntu 16.04 上安装了 Nvidia gtx1060 和 corei7 - 我用 --no-opengl-files 安装了 nvida 运行文件驱动程序(按照 Nvidia 和许多地方的说明)。- 具体来说,我正在运行 floydhub/pytorch docker 镜像。

有没有人认识到特定的渲染故障及其可能意味着什么?它几乎看起来像一个帧缓冲区的 StackOverflow!我可以做些什么来追踪错误?

您可以按如下方式轻松重现:

docker run -it --user=$(id -u) --env="DISPLAY" --workdir="/home/$USER" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" floydhub/pytorch:0.1.11-gpu-py3.6 bash
Run Code Online (Sandbox Code Playgroud)

现在在图像中,输入python,然后输入以下内容:

import gym
gym.make('Pong-v0').render()
Run Code Online (Sandbox Code Playgroud)

这应该在你的机器上打开一个 x-forwarded 窗口,但显示已损坏(至少对我而言)

图片

上面我实际上使用了 SpaceInvaders-v0

小智 2

我在旧版本的gym 和新版本的gym[atari] 上运行时遇到了这个问题。这就是我的 pong render() 的样子

在此输入图像描述

我可以通过运行以下命令来确保安装了两者的最新版本来修复它

pip install gym --upgrade
pip install gym[atari] --upgrade
Run Code Online (Sandbox Code Playgroud)

然后就正确显示了

在此输入图像描述