Je viens d'installer OpenAI gym sur Google Colab, mais lorsque j'essaie de lancer l'environnement 'CartPole-v0' comme a expliqué ici .
Code:
import gym
env = gym.make('CartPole-v0')
for i_episode in range(20):
observation = env.reset()
for t in range(100):
env.render()
print(observation)
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
J'ai compris:
WARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-19-a81cbed23ce4> in <module>()
4 observation = env.reset()
5 for t in range(100):
----> 6 env.render()
7 print(observation)
8 action = env.action_space.sample()
/content/gym/gym/core.py in render(self, mode)
282
283 def render(self, mode='human'):
--> 284 return self.env.render(mode)
285
286 def close(self):
/content/gym/gym/envs/classic_control/cartpole.py in render(self, mode)
104
105 if self.viewer is None:
--> 106 from gym.envs.classic_control import rendering
107 self.viewer = rendering.Viewer(screen_width, screen_height)
108 l,r,t,b = -cartwidth/2, cartwidth/2, cartheight/2, -cartheight/2
/content/gym/gym/envs/classic_control/rendering.py in <module>()
21
22 try:
---> 23 from pyglet.gl import *
24 except ImportError as e:
25 reraise(prefix="Error occured while running `from pyglet.gl import *`",suffix="HINT: make sure you have OpenGL install. On Ubuntu, you can run 'apt-get install python-opengl'. If you're running on a server, you may need a virtual frame buffer; something like this should work: 'xvfb-run -s \"-screen 0 1400x900x24\" python <your_script.py>'")
/usr/local/lib/python3.6/dist-packages/pyglet/gl/__init__.py in <module>()
225 else:
226 from .carbon import CarbonConfig as Config
--> 227 del base
228
229 # XXX remove
NameError: name 'base' is not defined
Le problème est le même dans cette question sur NameError dans openAI gym
Rien n'est rendu. Je ne sais pas comment utiliser ceci dans google colab: 'xvfb-run -s \"-screen 0 1400x900x24\" python <your_script.py>'"
Le gymnase rendra normalement l'affichage en utilisant GL, sur votre écran.
Mais Colab est exécuté sur le Web comme un ordinateur portable, il ne peut pas être affiché directement sur votre écran. Il ne peut afficher le résultat que via HTML.
Si quelqu'un modifie le gymnase pour modifier WebGL, peut-être un jour. Mais pas maintenant.
Une façon de rendre l’environnement de la salle de sport dans google colab consiste à utiliser pyvirtualdisplay et à stocker le tableau d’images en RVB lorsqu’il est exécuté. Les cadres d'environnement peuvent être animés à l'aide de la fonctionnalité d'animation de matplotlib et de la fonction HTML utilisée pour le module d'affichage Ipython. Vous pouvez trouver l'implémentation here . Assurez-vous d’installer les bibliothèques requises que vous pouvez trouver dans la première cellule de la colonne. Dans le cas où le premier lien pour google colab ne fonctionne pas, vous pouvez voir celui-ci .
Javier, Pourriez-vous trouver une solution à ce problème? J'essaie d'utiliser le nouvel environnement OenAI "" gym retro "et j'obtiens le même type d'erreur en appelant make. Mais comme vous l'avez dit, je pense que l'utilisation de xvfb devrait résoudre le problème et laisser le programme s'exécuter, mais nous ne serions bien sûr pas en mesure de visualiser l'environnement de manière graphique. Mais le problème est que cela ne permet pas à xvfb de fonctionner en arrière-plan! xvfb: 99 & soulève OSError: processus d'arrière-plan non pris en charge.