我正在玩RL colab,它使用健身房的CartPole-v0。我通过连接到远程centOS 7.3服务器(而不是谷歌驱动器)的jupyter打开了iPython笔记本。下面的代码在google colab下正确地呈现了cartpole图,但在我的jupyter设置下却不正确:
!pip install gym[classic_control]
import gym
env = gym.make('CartPole-v0')
env.reset()
img = env.render('rgb_array')
plt.imshow(img)下面是我如何开始我的jupyter笔记本的:
xvfb-run -a -s "-screen 0 1400x900x24" jupyter notebook显然,渲染的图像有未初始化的维度或0维度。无论是否使用Jupyter,这都是正确的。
下面是完整的错误:

我在pyglet/image/__init__.py错误之前打印出了这一行
def get_image_data(self):
# xxx = GLubyte * (len(self.format) * self.width * self.height)
print(GLubyte, len(self.format), self.width, self.height) # my code
buffer = (GLubyte * (len(self.format) * self.width * self.height))()结果要么是(4 0 0),要么是(4 1551512832 274094153),我从这两个值中推断出宽度和高度未初始化。但我对内部的理解还不够深入,无法进一步调试。在前一种情况下,MemoryError变成了错误,表示无法渲染大小为零的图像。
任何洞察力都是值得欣赏的。以下是一些相关的线程:
发布于 2020-11-10 07:59:24
我设法用以下一系列命令解决了环境问题:
sudo yum install python-xvfbwrapper.noarch
sudo yum install mesa-dri-drivers
sudo yum install xorg-devel libglu1-mesa libgl1-mesa-devel libxinerama1 libxcursor1
sudo yum install glxinfo
sudo yum -y install freeglut-devel然后,以下呈现将在连接到服务器的jupyter浏览器笔记本中运行
import gym
import matplotlib.pyplot as plt
env = gym.make('CartPole-v0')
env.reset()
img = env.render('rgb_array')
plt.imshow(img)

https://stackoverflow.com/questions/64529815
复制相似问题