首頁>技術>

在Windows上渲染OpenAI-Gym的指南

OpenAI Gym是學習和開發強化學習演算法的好地方。 它提供了許多有趣的遊戲(所謂的"環境"),你可以將自己的策略用於測試。 例如,它有一些簡單的遊戲,例如在小推車上平衡垂直杆(" CartPole-v1"),將鐘擺擺到直立位置(" Pendulum-v0"),以及一些經典的電子遊戲,例如Space Invader 和Pin Ball。

然而,gym是設計在Linux上執行的。儘管它可以使用Conda或PIP安裝在Windows上,但它不能在Windows上顯示,因為它的呈現是在基於Linux的包PyVirtualDisplay上響應的。因此,在Windows上玩OpenAI Gym很不方便。

那麼Windows使用者是如何視覺化gym呢?

一個簡單的解決方案是使用谷歌Colab。它可以透過web瀏覽器訪問,而且大多數包都已經正確設定好了。但是Colab也有缺點:

1. 頻繁的會話超時和斷開連線。您的會話可能在餐後超時,您的所有資料將丟失。

1. 機器配置不高。就連我的戴爾XPS膝上型電腦在許多神經網路模型上的執行速度也比免費的Colab電腦快兩倍。如果你已經有一臺不錯的機器,為什麼不使用它呢?

1. 安裝本地驅動器不方便。每次你開始一個會話的時候都需要這樣做。

安裝Linux / Windows雙啟動是最乾淨的解決方案。但是,如果您只是想不時進行一些編碼,那麼設定一個完整的作業系統似乎是一個過大的選擇。安裝Linux VM所需的精力要少於雙重引導,但仍然需要大量的精力來設定整個虛擬系統,以及解決潛在的相容性問題,解決庫和程式包依賴性等。使用docker映像應該很容易,但是透過docker hub上快速搜尋生成的映像無法在我的計算機上執行。另一個github上的程式碼僅具有"實驗性" Windows支援,並且需要從原始碼構建看似複雜的Docker映像。眾所周知,在另一個作業系統上從原始碼構建遠非直截了當。

Genevieve Hayes[3]在這篇文章中詳細描述了一個純Windows解決方案。它結合使用Visual Studio、Conda、Pip和Xming。這不是一個簡短的步驟列表。我一步一步地遵循這些步驟,但仍然無法構建atari-py和box2d。此外,我有點擔心Windows原生解決方案將來可能需要一些原始碼修改。

在評估了許多選項之後,我最終自己構建了一個極簡的docker映像。這遠沒有聽起來那麼難。但如果你想跳過設定環境的工作,你可以透過以下三個簡單的步驟直接享受Gym:

下載並安裝Docker

從Dock拉出我的docker映像:

docker pull jxu305/openai_gym_docker:v1.0

從命令列執行docker映像(如果您願意,可以掛載您喜歡的檔案)

docker run -p <local port>:8888 -it -v <local directory to mount>:<target directory> jxu305/openai_gym_docker:v1.0

或者只是從Docker桌面GUI啟動

為了測試方便,我在圖片中添加了一個小notebook 來測試渲染示例環境:Cart Pole v1、Mountain Car v0、Pendulum v0、Lunar Lander v2、Space Invaders v0和Car Racing v0。

如果你對如何製作這個docker感興趣,請繼續閱讀。這其實很簡單,你所需要的是一個少於30行的Dockerfile。在這裡,我將逐步介紹Dockerfile。

首先,為了避免從頭開始建造,我從jupyter notebook環境開始建造。由於Geron的機器學習書籍使用tensorflow,我決定在jupyter/tensorflow-notebook影象的基礎上進行構建。

FROM jupyter/tensorflow-notebook

接下來,安裝呈現環境所需的一些庫。

USER rootRUN apt-get update -y && \     apt-get install -y xvfb && \    apt-get install -y python-opengl

然後安裝OpenAI-gym,以及PyVirtualDisplay。

USER ${NB_USER}RUN pip install gym pyvirtualdisplay

僅此而已。有了這幾行程式碼,你就可以執行和渲染

我在Dockerfile中添加了幾行程式碼,以支援一些需要Box2D, Toy Text,和雅達利的環境。例如,經典的月球著陸器和太空入侵者環境。

RUN apt-get install -y cmake && \    apt-get install -y zlib1g zlib1g-devRUN conda install swigRUN pip install box2d-py atari_py pystan

最後兩行只是為了測試方便,將一些檔案複製到影象中。

COPY ./example/env_render.ipynb /home/${NB_USER}/env_render.ipynbCOPY ./example/18_reinforcement_learning.ipynb /home/${NB_USER}/18_reinforcement_learning.ipynb

這就是Dockerfile的全部內容。構建這個簡單的docker也很容易,只需在命令列中執行以下命令:

$ docker build -t <your tag>:<version> .

恭喜你!你只要建立你自己的OpenAI-gym docker!現在你可以用Docker桌面啟動它並開始你的程式碼。

最後dockerfile程式碼在這裡:hgithub/jianxu305/openai-gym-docker

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • GO如何優雅的使用RabbitMQ?看完你也會