Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
No Result
View All Result
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
No Result
View All Result
Home Programmation

Rendu des environnements OpenAI Gym sur Binder et Google Colab

7 mai 2020
in Programmation
Reading Time: 13 mins read
Rendu des environnements OpenAI Gym sur Binder et Google Colab

Table des matières

ArticlesA lire

Eh bien, cela s’est rapidement développé – Construire de meilleurs produits avec l’escalade

Eh bien, cela s’est rapidement développé – Construire de meilleurs produits avec l’escalade

Revue Atomicrops – SUPERJUMP – Moyen

Revue Atomicrops – SUPERJUMP – Moyen

Application des principes heuristiques pour évaluer un jeu mobile

Un moyen super facile de faire des validations EditText dans Android

Rendu des environnements OpenAI Gym sur Binder et Google Colab

Remarques sur la résolution d’un problème fastidieux (mais important)

David R. Pugh

J’utilise actuellement ma quarantaine imposée par COVID-19 pour étendre mes compétences d’apprentissage en profondeur en complétant le Apprendre le renforcement profond Nanodegree de Udacity. Presque immédiatement, j’ai rencontré le problème fastidieux d’obtenir un rendu correct de mes simulations lors de la formation sur des serveurs distants.

En particulier, obtenir OpenAI Gym des environnements à restituer correctement dans des serveurs distants tels que ceux qui prennent en charge les installations de calcul gratuites populaires telles que Google Colab et Classeur s’est avéré plus difficile que je ne le pensais. Dans cet article, j’expose ma solution dans l’espoir de faire gagner du temps et des efforts aux autres pour la résoudre de manière indépendante.

Si vous souhaitez utiliser Google Colab, cette section est pour vous! Sinon, vous pouvez passer à la section suivante pour le préambule du classeur.

Installer les dépendances du système X11

Tout d’abord, vous devrez installer le nécessaire X11 dépendances, en particulier Xvfb, qui est un serveur X qui peut fonctionner sur des machines sans matériel d’affichage et sans périphériques d’entrée physiques. Vous pouvez installer des dépendances système dans votre bloc-notes Colab en ajoutant à la commande install un point d’exclamation (!) qui exécutera la commande dans son propre shell Bash.

Installer des dépendances Python supplémentaires

Maintenant que vous avez installé Xvfb, vous devez installer un wrapper Python pyvirtualdisplay afin d’interagir avec les affichages virtuels Xvfb depuis Python. Vous devez également installer les liaisons Python pour OpenGL: PyOpenGL et PyOpenGL-accélérer. Le premier est les liaisons Python réelles, le second est un ensemble facultatif d’extensions C (Cython) permettant l’accélération des opérations courantes dans PyOpenGL 3.x.

Installer OpenAI Gym

Ensuite, vous devez installer le package OpenAI Gym. Notez que selon l’environnement Gym que vous souhaitez utiliser, vous devrez peut-être ajouter des dépendances supplémentaires. Comme je vais simuler l’environnement LunarLander-v2 dans ma démo ci-dessous, je dois installer le box2d supplémentaire qui permet des environnements Gym qui dépendent de la Box2D simulateur de physique.

Pour plus de simplicité, j’ai rassemblé toutes les étapes d’installation du logiciel dans un seul bloc de code que vous pouvez couper et coller dans votre ordinateur portable.

Créer un affichage virtuel en arrière-plan

Maintenant que tous les logiciels requis sont installés, vous êtes prêt à créer un affichage virtuel (c’est-à-dire un affichage qui s’exécute en arrière-plan) auquel les OpenAI Gym Envs peuvent se connecter à des fins de rendu. Vous pouvez effectivement vérifier qu’il n’y a pas d’affichage actuellement en confirmant que la valeur du DISPLAY la variable d’environnement n’a pas encore été définie.

Le code dans la cellule ci-dessous crée un affichage virtuel en arrière-plan auquel votre Gym Envs peut se connecter pour le rendu. Vous pouvez régler size du tampon virtuel comme vous le souhaitez, mais vous devez définir visible=False lorsque vous travaillez avec Xvfb.

Ce code ne doit être exécuté qu’une seule fois dans votre ordinateur portable pour démarrer l’affichage.

Après avoir exécuté le code ci-dessus dans votre ordinateur portable, vous pouvez faire écho à la valeur du DISPLAY variable d’environnement à nouveau pour confirmer que vous avez maintenant un affichage en cours d’exécution.

Pour plus de commodité, j’ai regroupé les étapes ci-dessus en deux cellules que vous pouvez copier et coller dans le haut de vos blocs-notes Google Colab.

Si vous souhaitez utiliser Classeur, alors cette section est pour vous!

Aucune installation supplémentaire requise!

Contrairement à Google Colab, avec Binder, vous pouvez créer toutes les dépendances requises (y compris les dépendances du système X11!) Dans l’image Docker sur laquelle l’instance de Binder est basée à l’aide des fichiers de configuration de Binder. Ces fichiers de configuration peuvent vivre dans le répertoire racine de votre dépôt Git ou dans un binder sous-répertoire (mon choix préféré).

binder / apt.txt

Le premier fichier de configuration à définir est le apt.txt fichier utilisé pour installer les dépendances du système. Vous pouvez simplement créer un fichier nommé de manière appropriée, puis répertorier les dépendances que vous souhaitez installer (une par ligne). Après un peu d’essais et d’erreurs, je suis tombé sur la combinaison gagnante suivante.

binder / environment.yml

Le deuxième fichier de configuration est le standard environment.yml fichier utilisé pour définir un environnement Conda. Si vous n’êtes pas familier avec Conda, alors je vous suggère de consulter mes articles récents sur Débuter avec Conda et Gestion des environnements spécifiques au projet avec Conda.

binder / requirements.txt

Le dernier fichier de configuration requis est le requirements.txt fichier utilisé par Conda pour installer les dépendances Python supplémentaires qui ne sont pas disponibles via les canaux Conda à l’aide de pip.

Si vous souhaitez en savoir plus sur Binder, consultez la documentation de BinderHub qui est la technologie sous-jacente du projet Binder.

Créer un affichage virtuel en arrière-plan

Ensuite, vous devez créer un affichage virtuel en arrière-plan auquel les Gym Envs peuvent se connecter à des fins de rendu. Vous pouvez vérifier qu’il n’y a pas d’affichage actuellement en confirmant que la valeur du DISPLAY la variable d’environnement n’a pas encore été définie.

Le code dans la cellule ci-dessous crée un affichage virtuel en arrière-plan auquel votre Gym Envs peut se connecter pour le rendu. Vous pouvez régler size du tampon virtuel comme vous le souhaitez, mais vous devez définir visible=False lorsque vous travaillez avec Xvfb.

Ce code ne doit être exécuté qu’une fois par session pour démarrer l’affichage.

Après avoir exécuté la cellule ci-dessus, vous pouvez faire écho à la valeur du DISPLAY variable d’environnement à nouveau pour confirmer que vous avez maintenant un affichage en cours d’exécution.

Juste pour prouver que la configuration ci-dessus fonctionne comme annoncé, je lancerai une courte simulation. Je définis d’abord un Agent qui choisit une action au hasard dans l’ensemble des actions possibles, puis définit une fonction qui peut être utilisée pour créer de tels agents. Ensuite, je termine le code pour simuler un seul épisode d’un environnement OpenAI Gym. Notez que la mise en œuvre suppose que l’environnement fourni prend en charge rgb_array rendu (que tous les environnements Gym ne prennent pas en charge!).

Actuellement, il semble y avoir une quantité non négligeable de scintillement pendant la simulation. Je ne sais pas exactement ce qui cause ce comportement indésirable. Si vous avez une idée de comment améliorer cela, veuillez laisser un commentaire ci-dessous. Je serai sûr de mettre à jour ce message en conséquence si je trouve une bonne solution.

ShareTweetPin

Related Posts

Eh bien, cela s’est rapidement développé – Construire de meilleurs produits avec l’escalade
Programmation

Eh bien, cela s’est rapidement développé – Construire de meilleurs produits avec l’escalade

Eh bien, cela s'est rapidement développé - Construire de meilleurs produits avec l'escalade Une fois les plaisanteries de base terminées,...

Revue Atomicrops – SUPERJUMP – Moyen
Android

Revue Atomicrops – SUPERJUMP – Moyen

Revue Atomicrops - SUPERJUMP - Moyen L'agriculture est destinée à compléter l'action, et non l'inverse.

Programmation

Application des principes heuristiques pour évaluer un jeu mobile

Application des principes heuristiques pour évaluer un jeu mobile photo par Austin Distel sur Unsplash photo par Halacious sur Unsplash...

Android

Un moyen super facile de faire des validations EditText dans Android

Un moyen super facile de faire des validations EditText dans Android Ici, nous obtenons le TextInputLayout de TextInputEditText en utilisant...

Next Post
Business : Que faudra-t-il aux restaurants locaux pour récupérer? Le célèbre brasseur de la péninsule Dan Gordon sonne l’alarme après sa fermeture à Palo Alto

Business : Que faudra-t-il aux restaurants locaux pour récupérer? Le célèbre brasseur de la péninsule Dan Gordon sonne l'alarme après sa fermeture à Palo Alto

La partie la plus importante de votre copie est qu’elle est reproductible

La partie la plus importante de votre copie est qu'elle est reproductible

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Accueil
  • Questions & Réponses
  • Science
  • Astuces
  • Business
  • Cryptomonnaie
  • Design
  • Marketing
  • Programmation
  • Politique de confidentialité
  • A propos
  • Contact

© 2018-2020 SupportIVY - Premium Magazine.

No Result
View All Result
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt