更新(2019.3.19)
長々とatariを入れるために記事を書きましたが1文でできる事が判明しました。
以下参考url
https://stackoverflow.com/questions/42605769/openai-gym-atari-on-windows/46739299#46739299
上記サイトによると
pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py
これで入れることができるそうです。
ただしVidualStudioは必要みたいです。
その時は[Visualstudio 2015C++ビルドツールを入れる]を参考してください。
まえがき
強化学習のベンチマークの1つとしてopenAI gymがあります。
openAI gym
有名なCartpoleやMountainCar、そしてatari社のゲームであるMs.pacman等があり、これらを使って強化学習をすることができます。
このgymとatariを入れるにあたって
macやlinuxではpip imstall gym
、pip imstall gym[atari]
で入れることができますが、
windowsではpip imstall gym
は使えるのですが、pip imstall gym[atari]
は使うことができません。公式がwindowsをサポートしていません。
windowsにatariを入れるには、少し遠回りをしなくてはいけません。
今回入れるにあたってつまずくことが多かったので、ここに記したいと思います。
環境
windows10 Pro
python == 3.6.4
参考
https://qiita.com/tmizu23/items/ff1d5c89bc99292410c0
http://daruma3940.hatenablog.com/entry/2017/08/13/030344
baselinesとgymを入れる
pip install gym
pip install baselines
まずは自分の入れたい環境にこの2つをいれます。
もしかしたらbaselinesを入れたときにfailed失敗の文字があるかもしれませんが先に進みます。
Visualstudio 2015C++ビルドツールを入れる
atariをコンパイルするためにMicrosoft Build Tools 2015を入れます。
https://www.microsoft.com/ja-JP/download/details.aspx?id=48159
上のリンクでダウンロードをします。
ここで無事にダウンロードできた人は次の項目に進んでください。
ダウンロードできなかった人はBuild Tools 2017が入っている可能性があります。自分はここで一度つまずきました。
まずatariをコンパイルするにはBuild Tools 2015である必要があります。2017ではできません。
そして2017が入っている状態で2015をいれることができないらしいです。なので2017を一度消してから入れ直してください。
msys2をインストール
msys2はunix系のシェルです。pacmanというパッケージインストーラーが入っていて、今回はそれを使っていきます。
http://www.msys2.org/
上記のリンクでダウンロードします。64bit版は真ん中のx86_64で、自分のパソコンに合ったものを入れ、インストーラー通りに入れます。
msys2にwindowsのパスを通す
msys2はデフォルトではwindowsには通しているパスが通っていません。シェルでpython
と打っても起動することはできません。
なので、設定を変える必要があります。
まずはインストールしたmsysフォルダに行き、msys2.iniを開きます。その内容は以下のようになっています。
#MSYS=winsymlinks:nativestrict
#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug|<process-id>
#CHERE_INVOKING=1
#MSYS2_PATH_TYPE=inherit
MSYSTEM=MSYS
この4行目にあるMSYS2_PATH_TYPE=inherit
にある#
を消します。
#MSYS=winsymlinks:nativestrict
#MSYS=error_start:mingw64/bin/qtcreator.exe|-debug|<process-id>
#CHERE_INVOKING=1
MSYS2_PATH_TYPE=inherit <-ここの#を消す
MSYSTEM=MSYS
gitを入れパスを通す
gitが入っている人は多いと思いますが、入れていない人はgitを入れましょう。
https://git-scm.com/
インストールするときにgitにパスを通すか確認されるのでパスを通しましょう。
atariを入れる
msys2.exeを開き、以下の3つを打ちます。
pacman -Syu
コンソールを立ち上げなおして
pacman -Su
pacman -S base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake
pacman -Syu
をした後、msys2を再起動することが求められるのでもう一度開きます。
すべてを完了するには少し時間がかかるので待ちます。
そして最後に以下を打ちます。
pip install -U git+https://github.com/Kojoley/atari-py.git
成功するとdoneの文字があると思います。
これですべて完了ですお疲れ様でした。
動かしてみる
以下のコードを動かしてみます
import gym
env = gym.make('MsPacman-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample())
env.close()
これでパックマンが動き出したら成功です。ランダムウォークなのですぐに死にます。
(仮想環境に入れたい人向け)
自分はtensorflowを仮想環境に入れていて、アタリもそこに入れようとしたのですが、msys2上で仮想環境をactivateしても反応がなく、仮想環境をactivateしてからmsys2を立ち上げてもできませんでした。そこで仮想環境に直接パスを通すという強引な方法を使いました。もっと良い入れ方があれば教えてください。
やることは簡単で、windowsのパスに(仮想環境のファイルのパス)\Scripts
を追加し、一番上に持っていくだけです。
入れ終わった後にそのパスを消すのを忘れないでください。