I am trying to use a Reinforcement Learning tutorial using OpenAI gym in a Google Colab environment. I am using the strategy of creating a virtual display and then using matplotlib to display the environment that is being rendered.
This works nicely when I use the "CartPole-v0" or the 'LunarLander-v2' environment but is giving an error when I use "Taxi-v3" environment.
Notebook cells are as follows:
# install required system dependencies
!apt-get install -y xvfb x11-utils > /dev/null
!pip install gym[box2d] pyvirtualdisplay PyOpenGL PyOpenGL-accelerate > /dev/null
import pyvirtualdisplay
_display = pyvirtualdisplay.Display(visible=False,size=(1400, 900)) # use False with Xvfb
_ = _display.start()
!echo $DISPLAY
import gym
import matplotlib.pyplot as plt
import numpy as np
from IPython import display
env = gym.make("Taxi-v3").env
#env = gym.make("CartPole-v0").env
#env = gym.make('LunarLander-v2')
env.reset()
fig, ax = plt.subplots(figsize=(20, 10))
ax.axis('off')
img = ax.imshow(env.render(mode='rgb_array'))
#img.set_data(env.render(mode='rgb_array'))
display.display(plt.gcf())
display.clear_output(wait=True)
the error is as follows :
Exception in callback BaseAsyncIOLoop._handle_events(18, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(18, 1)>
Traceback (most recent call last):
File "/usr/lib/python3.6/asyncio/events.py", line 145, in _run
self._callback(*self._args)
-------- ------- ---- etc etc
File "/usr/local/lib/python3.6/dist-packages/ipykernel/iostream.py", line 339, in flush
if self.pub_thread.thread.is_alive():
AttributeError: 'NoneType' object has no attribute 'thread'
As noted earlier, the error happens ONLY when I use the Taxi-v3 environment. I have two questions
- what changes should I do make the Taxi-v3 environment work within Colab?
- what could be the difference between the Taxi environment and the two other environments? What could be reason for this error?
Any guidance or suggestion would be welcome.
question from:
https://stackoverflow.com/questions/65912117/openai-gym-render-in-google-colab 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…