LoginSignup
6
13

More than 5 years have passed since last update.

OpenAI Baselinesをwindows(winpython)で試す。

Last updated at Posted at 2017-05-25

OpenAIから強化学習をtensorflowで簡単にお試しできるソースコードが公開されたようなのでWindows環境(WinPython)で試してみました。(とりあえず殴り書き)

WinPythonを以下からダウンロード

http://winpython.sourceforge.net/
以下、WinPython-64bit-3.5.3.1Qt5を利用した場合です。

GPU関連とtensorflowを以下を参考にインストール

OpenAI Baselinesを以下を参考にインストール

https://github.com/openai/baselines
Winpythonのコンソールで

pip install baselines
pip install gym

CartPoleのトレーニング&テスト

Winpythonのコンソールで以下を実行するとcart pole(台車の棒が倒れないようにするゲーム)のトレーニングとテストができます。

python -m baselines.deepq.experiments.train_cartpole
python -m baselines.deepq.experiments.enjoy_cartpole

ここからが本題

ここまでは順調ですが、Pong(ポン)のサンプルを試そうと以下を実行するとエラーが出ます。

python -m baselines.deepq.experiments.train_pong

以下のようにatariを入れろとヒントがでるので、実行すると
pip install gym[atari]
→make がないので、エラーとなります。

以下のスレッドの途中あたりを参考にatariを頑張ってコンパイルします。(bash on ubuntu on windowsを使う方じゃないやつ)
https://github.com/openai/gym/issues/11

msys2を以下を参考にインストールして、makeできるようにします。
http://www.msys2.org/
msys2のコンソールで以下を打ってアップデートします。

pacman -Syu
コンソールを立ち上げなおして
pacman -Su
開発環境もインストールします
pacman -S base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake

msys2のコンソールで以下を実行するとmakeができるはずですが

pip install -U git+https://github.com/Kojoley/atari-py.git

pipがないというエラーが出ます。

winpythonにパスを通しておく必要があるので
windowsの環境変数のpathに以下を追加します。

C:\WinPython-64bit-3.5.3.1Qt5
C:\WinPython-64bit-3.5.3.1Qt5\python-3.5.3.amd64\Scripts
C:\WinPython-64bit-3.5.3.1Qt5\python-3.5.3.amd64

そのままだとmsysのコンソールにpathが引き継がれないようなので環境変数のMSYS2_PATH_TYPEにinheritを追加します。
http://chirimenmonster.github.io/2016/05/09/msys2-path.html

gitコマンドにもパスが通ってないといけないのでgit for windowsを入れておきます。
https://git-for-windows.github.io/

再度、msys2のコンソールで以下のコマンドを打ちます。

pip install -U git+https://github.com/Kojoley/atari-py.git

できたっぽい。

winpythonのコンソールでpip listを実行してatariがインストールされているのを確認します。

やっとこさで目的のサンプルを実行します。

python -m baselines.deepq.experiments.train_pong

v3がないというエラーがでるので

C:\WinPython-64bit-3.5.3.1Qt5\python-3.5.3.amd64\Lib\site-packages\baselines\deepq\experiments\train_pong.py
の"PongNoFrameskip-v3"を"PongNoFrameskip-v4"に変更します。

enjoy_pong.pyも同じくv4変更しておきます。

で、もう一回、以下のコマンドを実行します。

python -m baselines.deepq.experiments.train_pong

トレーニングが始まりました!が、まだ終わらないので、今日はここまで。(学習終わったら結果の画像を載せたい)

追記:
学習終わりました。上手くなってる!(右側がプレーヤー)

学習前

Pong 学習前 pic.twitter.com/0xAdAr1X7b

— tmizu23 (@tmizu23) 2017年5月26日

学習後

Pong 学習後 pic.twitter.com/EzmCrIv6lj

— tmizu23 (@tmizu23) 2017年5月26日

6
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
13