TadaoYamaokaの日記

山岡忠夫Homeで公開しているプログラムの開発ネタを中心に書いていきます。

WSLでOpenAI Gymを動かしてVSCodeでデバッグする

OpenAI Gymのサンプルコードを調べたくてWSLで環境構築した際のメモです。

OpenAI GymはWindowsには対応していないため、Windowsで動かすにはWSL上のLinuxで動かす必要があります。
また、PythonコードをGUIデバッグしたい場合、Visual Studio Codeデバッグできると便利です。
その際、Windows上のVisual Studio CodeからWSLのPythonデバッグはできないため、WSLにVisual Studio Codeをインストールする必要があります。
WSL上でもX Window ServerをインストールすることでVisual Studio CodeGUIで実行できます。

以下、環境構築からサンプル実行までの手順です。

WSLのインストール

Microsoft StoreからUbuntu 18.04LTSをインストールする。

X Window Server

はじめXmingを試したが動作しなかったため、VcXsrvをインストールした。
https://sourceforge.net/projects/vcxsrv/

.bashrcの設定

Windows上のX Serverに接続できるように.bashrcに設定を追加する。

echo 'export DISPLAY=:0.0' >> .bashrc

sourceするかbashを再起動する。

VcXsrvの起動時オプション

VcXsrvを起動する際に、Native openglを有効にするとフルスクリーンでウィンドウ固定でしか起動しなかったため、オプションをオフにした。

Visual Studio Codeのインストール

公式ページの手順通りインストールする。
https://code.visualstudio.com/docs/setup/linux
Debian and Ubuntu based distributions

起動

VcXsrvを起動した状態で、

code

で起動する。

起動時に、以下のエラーが出力される場合、

/usr/share/code/bin/../code: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory

以下のパッケージをインストールする。

sudo apt-get install gconf-service libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxss1 libxtst6 libappindicator1 libnss3 libasound2 libatk1.0-0 libc6 ca-certificates fonts-liberation lsb-release xdg-utils wget

参考:
How to fix puppetteer error ibX11-xcb.so.1 on Ubuntu

起動後、ExtentionsからPython拡張をインストールする。

Pythonインストール

Ubuntu 18.04ではPython3がデフォルトでインストールされている。
OpenAI Gymのサンプルを実行するため、追加でパッケージをインストールする。

sudo apt install python3-pip
pip3 install matplotlib
sudo apt-get install python-opengl
sudo apt-get install python3-tk

OpenAI Gymのインストール

pipからOpenAI Gymをインストールする。

pip3 install gym

Pytorchのインストール

PytorchのDQNのサンプルを動かしたかったので、Pytorchをインストールする。
インストール方法は公式の手順の通り。
WSLではCUDAは動作しないため、CUDAは選択しない。

pip3 install https://download.pytorch.org/whl/cpu/torch-1.1.0-cp36-cp36m-linux_x86_64.whl
pip3 install https://download.pytorch.org/whl/cpu/torchvision-0.3.0-cp36-cp36m-linux_x86_64.whl

サンプル実行

↓このサンプルを実行してデバッグする。
REINFORCEMENT LEARNING (DQN) TUTORIAL
Reinforcement Learning (DQN) Tutorial — PyTorch Tutorials 1.1.0 documentation

Visual Studio Codeで新規の.pyファイルを作成して、サンプルコードをコピーペーストする。
F5を押してデバッグ実行する。

問題なく実行できた。
f:id:TadaoYamaoka:20190701091608p:plain
f:id:TadaoYamaoka:20190630181428p:plain

あとは調べたい箇所にブレークポイントを設定して、変数の値などを調べればよい。