はじめに
この記事はWSL (Windows Subsystem for Linux) 上にOpenAIのgym(強化学習フレームワーク)の実行環境を構築した時のメモです。
インストールしたもの
- python3.6
- pip
- 強化学習で使いそうなライブラリ
- VcXsrv(XServerクライアント)
この記事には以下の内容は含まれません。
- WSLはインストール済みであることが前提です。
- 強化学習の説明はしませんので、別の記事をご参照ください。
インストールするもの
Linux側
WSL(ubuntu)のデフォルトはpython3.5が入っているので、Python3.6とpipを使えるようにする。
このページを参考にapt-getでインストールする。
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt install python3.6 python3-pip
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
python3 -V
でpython3.6が有効になっていればOK。
今回は仮想環境とかは作らずにWSL上に環境を作っていく。
pipでさしあたって使いそうなものをインストール。
pip3 install --user numpy tensorflow keras chainer chainerrl gym jupyter scipy
Windows側
XServerクライアントが必要になります。
Xmingが有名ですが、こちらでVcXsrvが勧められていたのでVcXsrvをインストールしてみました。
ダウンロード:SourceForge
インストール方法など:WindowsでリモートのLinuxのGUIアプリを表示させる-Xサーバ VcXsrv
インストールは特に難しいことはなく、インストーラを起動してボタンをクリックしていくだけ。
インストール後はデスクトップにあるXLaunchというのを起動して、タスクバーに"X"マークのロゴが出ればOK。
一応、ロゴをマウスオーバーしてディスプレイのポートが0.0であることを確認しておく。
("ホスト名:0.0 - 0 clients"となっているはず。)
WSL側の設定は.bashrcに以下の二行を追加。localhostの後ろの0.0はロゴのマウスオーバーで確認した値にしておく。
二行目は"failed to load driver: swrast wsl"というエラーメッセージを消すために入れているが、なくても動く。
export DISPLAY=localhost:0.0
export "LIBGL_ALWAYS_INDIRECT=1"
.bashrc変更後はsource ~/.bashrc
するか、再起動する。
OpenGymのGUIが動くように以下をインストール。
sudo apt-get install python3.6-gdbm python-opengl
実際に試してみる
簡易確認
以下の内容でファイルを作ってコマンドラインから実行。テストなので、ランダムに行動させています。
最後の一行を入れないと終了時にエラーが出るみたいです。(2018/4/2時点)
import gym
env = gym.make('CartPole-v0')
observation = env.reset()
for _ in range(100):
env.render()
action = env.action_space.sample()
observation, reward, done, info = env.step(action)
env.close()
自動でXwindowが最前面に来ないこともあるので、タスクバーを見ていないと見落とすかも。
jupyter + chainerrl
jupyterを起動すれば、ChainerRLのクイックスタートも実行できる。
jupyterはjupyter notebook
で起動して、Windows側のブラウザから表示されたURLにアクセスすればOK.