12
14

More than 5 years have passed since last update.

windowsにOpenAIgym[atari]を入れる

Last updated at Posted at 2018-11-10

更新(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 gympip 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を開きます。その内容は以下のようになっています。

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にある#を消します。

msys2.ini
#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を追加し、一番上に持っていくだけです。
入れ終わった後にそのパスを消すのを忘れないでください。

12
14
2

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
12
14