はじめに
https://create.unity3d.com/obstacletower の Obstacle Tower の環境構築(Mac)メモです。
環境
- PC: MacBook Pro (Retina, 13-inch, Early 2015)
- OS: macOS Mojave(10.14.3)
- pipenv: version 2018.11.26
- pipenv は
brew install pipenv
などでInstallできます。
- pipenv は
Setup On Mac
https://github.com/Unity-Technologies/obstacle-tower-env を参考に準備していきます。
ディレクトリとPythonの準備
ml-agents が python3.6のみのサポートなので、python3.6を使います。
mkdir obstacle_tower
cd obstacle_tower
pipenv --python 3.6
Install Requirements
必要なライブラリをまとめてInstallしておきます。
pipenv install jupyter tensorflow gym Pillow
Unity ML-Agents v0.6
GitHubから直接Install。
pipenv install 'git+https://github.com/Unity-Technologies/ml-agents.git#egg=ml-agents&subdirectory=ml-agents'
Install Environments
obstacletower_v1_osx
UnityアプリのOSX用をDownloadして unzipします。
curl -LO https://storage.googleapis.com/obstacle-tower-build/v1/obstacletower_v1_osx.zip
unzip obstacletower_v1_osx.zip
rm obstacletower_v1_osx.zip
Clone & Install obstacle-tower-env
ここの notebookは後でOpenしたいので、一旦LocalにCloneしてから install します。
git clone git@github.com:Unity-Technologies/obstacle-tower-env.git
pipenv install -e obstacle-tower-env
現在のDir構成
ここまでの手順で、以下のようなDir構成になります。
% tree -L 2
.
├── Pipfile
├── Pipfile.lock
├── obstacle-tower-env
│ ├── LICENSE
│ ├── README.md
│ ├── banner.png
│ ├── examples
│ ├── obstacle_tower_env.egg-info
│ ├── obstacle_tower_env.py
│ └── setup.py
└── obstacletower.app
└── Contents
Getting Startを実行する
obstacle-tower-env/examples/basic_usage.ipynb
を使って環境がSetupできているか確認ができます。
まず、jupyterを起動します。
obstacletower.app
の PATH をnotebook中で指定する必要があるので、 PRJ_ROOT
という環境変数に現在のDirのPATHをセットしておきます。
※ 例では、obstacle-tower-env/examples/ObstacleTower
に展開しておけとなっているけど、後々使うことを考えるとそこに配置したくはないので。
PRJ_ROOT=$(pwd) pipenv run jupyter-notebook
ブラウザが立ち上がると思うので、 obstacle-tower-env/examples/basic_usage.ipynb
を開きます。
obstacletower.app
の PATHを指定する部分を書き換えます。
env = ObstacleTowerEnv('./ObstacleTower/obstacletower', retro=False)
↓
import os
env = ObstacleTowerEnv(f'{os.environ["PRJ_ROOT"]}/obstacletower', retro=False)
という感じで。
あとは、そのまま実行していけば、動くと思います。
全体的には こんな感じ になります。
さいごに
Linux上にHeadlessでSetupしたかったのですが、xvfbだとopenglが動かないとかなんとかで一筋縄にはいかなかったです。
このドキュメント によると、AWS上でも動くはずなので、頑張ればできるとは思うのですが、、、1日くらいかかりそうな予感がするので、まずは簡単な環境から...