Unity
ML-Agents

Unity ML-Agents 環境構築とサンプルの動作確認 (Mac)

はじめに

ML-Agentsのドキュメントの流れを日本語として残しました。
公式サイト https://github.com/Unity-Technologies/ml-agents
ドキュメント https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Readme.md

まとめ動画

https://youtu.be/ugcfWpy_jZQ

インストール

Unity

・Unity 2017.4 or Later:https://store.unity.com/download (Unity持ってない人のみ)
・ML-Agents Toolkit:git clone https://github.com/Unity-Technologies/ml-agents.git (ターミナルで実行すればml-agentsフォルダが出来上がる)

PythonとML-Agentsパッケージのインストール

Windows Users

後日記入:https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation-Windows.md

Mac and Unix Users

・Python3.6:https://www.python.org/downloads/
・pip3:https://packaging.python.org/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers (pip3を持ってない人のみ)
ターミナルで ml-agents>ml-agentsディレクトリまで移動し、以下を実行

pip3 install .

うまくインストールできていれば、上層のml-agentsディレクトリで

mlagents-learn --help

を入力すれば以下が表示される(表示されないならコメントください)。
スクリーンショット 2018-10-16 22.25.07.png

UnityにML-Agentsを導入する

  • Unityを起動
  • 先ほどのml-agentsフォルダのUnitySDKプロジェクトを開く
  • Edit>Project Setting > Playerで以下を設定 (.Net4.x とENABLE_TENSORFLOW)
    スクリーンショット 2018-10-16 22.31.40.png
  • File>Save Project

TensorFlowSharp pluginをダウンロードしてUnityにインポートする
https://s3.amazonaws.com/unity-ml-agents/0.5/TFSharpPlugin.unitypackage
インポートはここからダウンロードしたプラグインを選べばできる
スクリーンショット 2018-10-17 13.10.28.png

サンプル

ここではサンプルである、3DBallを動かす。
UnityエディタでAssets/ML-Agents/Examples/3DBall内にある3DBallのsceneを開く.
スクリーンショット 2018-10-17 13.09.30.png

3DBallの学習済モデルを動かす

  • 以下のように、Ball3DAcademy>Ball3DBrainのBrain TypeをInternalに設定する。
    スクリーンショット 2018-10-17 13.11.40.png

  • 学習済モデルであるAssets/ML-Agents/Examples/3DBall/TFModels内の3DBallGraph Model に設定する

スクリーンショット 2018-10-17 13.14.46.png

  • Unityエディタで再生ボタンを押せば学習済モデルの動作確認をすることができる

まとめ:学習済モデルを確認する場合は、BrainをInternalにし、Graph Mpdelにデータを設定して再生する

学習モデルを作成する(学習させる)

Unityエディタの準備

学習は外部で行われるので、Unityがバックグラウンドで動作でき、不必要な表示がでないように設定する。そのために以下のように
PlayerSettingsを設定する
- Run in Backgroundにチェック
- Display Resolution DialogをDisabled
スクリーンショット 2018-10-17 13.29.01.png

学習

  • 先ほどBrainをInternalとしたが、学習させる場合はExternalとする。
  • ターミナルを開いて、ml-agentsディレクトリ(mlagents-learn --helpが正常に表示される場所)で以下のコマンドを実行する
mlagents-learn config/trainer_config.yaml --run-id=firstRun --train

うまくいけば以下の画像が表示されるので、Unityエディタに戻り、再生ボタンをおす。
スクリーンショット 2018-10-17 13.24.14.png
学習が終了すれば、Ctrl+Cを押して実行を終了する。

  • UnitySDK/Assets/ML-Agents/Examples/3DBall/TFModels/フォルダに******.bytesファイルができているので、UnityエディタのAssets/ML-Agents/Examples/3DBall/TFModelsにドラッグする
  • 後は上で行ったようにBrainをInternalにし、Graph Mpdelに生成されたデータを設定して再生すれば確認できる

次への課題

次は、自作アプリに応用する場合の記事を書く