Universeとは
イーロン・マスク氏のOpenAI、人工知能学習プラットフォーム「Universe」をオープンソース化 – ITmedia ニュースの説明がわかりやすいので引用します。
Universeでは、AIエージェントは人間と同じようにコンピュータを使えるという。画面を見たり、仮想キーボードとマウスを使って操作する。これにより、人間がコンピュータでこなすタスクをエージェントに学習させることができるとしている。
さらに、
Universeには、環境として2600のAtariゲーム、1000のFlashゲーム、ブラウザのタスクなどが含まれる。
準備
conda
とりあえず、condaの環境があった方が良いということなので、Quick installを参考にインストールします。
Minicondaを開いて、必要なファイルをダウンロードします。
ダウンロードしたファイルを実行します。
$ sh Miniconda3-latest-MacOSX-x86_64.sh
ダイアログ形式で訪ねてくるので、それに回答してインストール完了です(ただし、pythonに詳しくないのでconda環境を構築するのが良いことなのかはわかりません…)。
Universeのインストール
README通り。
$ git clone https://github.com/openai/universe.git $ cd universe $ pip3 install -e .
で、うまくいくかと思ったのですが、エラーが出ました。必要に応じて下記の対応を行います。
$ xcode-select --install $ pip3 install numpy incremental $ brew install golang libjpeg-turbo
さらに、
Failed building wheel for fastzbarlight
とエラーが出た場合は、XQuartzを入れる必要があるということです。
$ brew install Caskroom/cask/xquartz
さらに、
configure: error: unable to find XShmQueryVersion in -lXext! specify XSHM_LIBS or configure --without-xshm to disable the extension See `config.log' for more details. Could not build fastzbarlight: ... ... Failed to build fastzbarlight
と出た場合は(これには苦しめられました…)、ログやIssueなど探ったのですが、うまくいかず結局、fastzbarlightのファイルをダウンロードして、個別にインストールしようとするもうまくいかず、fastzbarlightがsetup時に利用しているzbar(fastzbarlightはzbarのラッパー)自体がおかしいいというヒントを得たので、ダウンロードしたfastzbarlightの setup.py
の中にあるzbarの指定をhomebrewで入れたものに変えました(ちなみに、homebrewで入れたバージョンは念のため --without-xshm
しました)。
本家のIssueにも書いておきました…: fastzbarlight build failed on MacOSX 10.11.6 · Issue #51 · openai/universe
# extra_link_args=[os.path.join(os.path.dirname(__file__), 'src/fastzbarlight/vendor/zbar-0.10/zbar/.libs/libzbar.a')], extra_link_args=[os.path.join(os.path.dirname(__file__), '/usr/local/Cellar/zbar/0.10_2/lib/libzbar.a')],
そして、pipを使わずマニュアルインストールです。
$ cd /path/to/fastzbarlight $ python setup.py install
これで、fastzbarlightのインストールが成功しました…はぁはぁ…。
再度、
$ pip install -e .
を実行して成功することを確認します。
Dockerをインストールします。おすすめは、Docker for Macということです。Dockerアプリケーションを立ち上げて、
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ができることを確認します。
起動!
READMEにあるコードをPythonのREPLに貼り付けます(とりあえず!)。起動にはちょっと時間がかかりました(15分くらい?)。
import gym import universe # register the universe environments env = gym.make('flashgames.DuskDrive-v0') env.configure(remotes=1) # automatically creates a local docker container observation_n = env.reset() while True: action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n] # your agent here observation_n, reward_n, done_n, info = env.step(action_n) env.render()
これで、接続して…、パスワードはREADMEに書いてあります。
$ open vnc://localhost:5900
やったー!(とりあえずここまで)