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

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

因此,我尝试在 docker 容器中运行 OpenAI gym,但它看起来像这样: 在此处输入图片描述

请注意,pong 窗口有一个奇怪的渲染问题,它会重复一些事情,而且颜色也会消失。(事实上,如果你查看 env.reset() 返回的数组,你就可以看到像素值,所以问题出在渲染上,而不是 x-forwarding 上。这里是太空入侵者:

在此处输入图片描述

我的设置非常简单。 - 我在本地安装了 ubuntu 16.04,带有 Nvidia gtx1060 和 corei7 - 我安装了带有 --no-opengl-files 的 nvida runfile 驱动程序(按照 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

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

import gym
gym.make('Pong-v0').render()

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

图像

上面我实际使用的是 SpaceInvaders-v0

答案1

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

在此处输入图片描述

我可以通过运行以下命令来修复此问题:确保安装了最新版本的

pip install gym --upgrade
pip install gym[atari] --upgrade

然后就正确显示了

在此处输入图片描述

相关内容