Edited at

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に生成されたデータを設定して再生すれば確認できる


次への課題

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