#はじめに
前回Unity ML-Agentsを使ってから新たにメジャーバージョンが出たのでとりあえず実行環境を整えていきます。
参考: Unity Ml-Agents Installation
困ったことがあったら公式を見ること。英語は読むこと。
実行環境
バージョン | |
---|---|
Windows 10 | 1909 |
Unity | 2018.4.26f1 |
Python | 3.6.6 |
ML-Agents | Release 6 |
ML-Agentsは現時点でUnstableでない最新のRelease 6を使用します。
またRelease 6は、Unityの2018.4もしくはそれ以降、Pythonは3.6.1もしくはそれ以降を使用しなければならない点に注意してください。
#まずは仮想環境作成
Anacondaで仮想環境を作成して元の環境と分けられるようにしておく。
conda create -n ml-agents
pythonのバージョンを指定したい場合は(バージョン3.6とすると)、
conda create -n ml-agents pyhton=3.6
仮想環境を作成後はactivateします。
conda activate ml-agents
これで仮想環境作成は終了。
#ML-Agents Release 6のセットアップ
UnityとPythonのインストールは済んでいるものとします。
まずはGithubからToolkit Repositoryをcloneします。
git clone --branch release_6 https://github.com/Unity-Technologies/ml-agents.git
--branch release_6
はrelease 6を指定するタグで、これを除くとmasterブランチのリポジトリをcloneすることになります。masterブランチは最新ですが、unstableなバージョンです。
##com.unity.ml-agents
パッケージをUnityにインストール
先ほどクローンしてきたレポジトリ内にcom.unity.ml-agentsがフォルダがあるのでそれをUnityにインストールする。
- Unityを開き、
Window -> Package Manager
を開く - Package Managerウィンドウの
+
ボタンをクリックする -
Add package from disk...
を選ぶ -
com.unity.ml-agents
フォルダを開く -
package.json
ファイルを選択する
##Pythonのmlagents
パッケージをインストールする
pip3 install mlagents
#Getting Started ガイドを試す
このガイドにEnvironmentを理解する項目があるのですが、自分で環境作成をするならしっかりと読んだ方がいいです。
今回はお試しなのでまずは3DBallのpre-trained modelを使います。他にもいろんなサンプルがあるのでいろいろ試してみましょう。
##pre-trained modelを試す
-
Project/Assets/ML-Agents/Examples/3DBall/Scenes
から3DBall
を開く -
Projectウィンドウから
Assets/ML-Agents/Examples/3DBall/Prefabs
を開き、3DBallを展開してAgent prefabをクリックするNote: 3DBallのプラットフォームは3DBall prefabを使用し作られている。よって12個のプラットフォームを全てアップデートする代わりに、3DBall prefabをアップデートすることによって変更できる。
-
Projectウィンドウから、
Assets/ML-Agents/Examples/3DBall/TFModels
の3DBallをInspectorウィンドウのAgentのBehavior ParametersのModelにドラッグする。(既に設定されているが、それぞれの学習結果をNNModelとして保存しModelに設定することで学習結果を確認できる。) -
Sceneの各3DBallのAgentのBehavior ParameterのModelが3DBall(NNModel)になっていることを確認する。
-
このModelで使用するInference DeviceをCPUにセットする(GPUを使用する場合はGPU)
-
Unity EditorのPlayボタンを押して3DBallが実行されていることを確認する
##強化学習で新しいモデルを学習させる
-
terminal windowを開く
-
Cloneした
ml-agents
レポジトリに移動する -
以下のコマンドを実行する
mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun
```
- "Start training by pressing the Play button in the Unity Editor"というメッセージが出たら、UnityのPlayボタンを押して学習を始める
- 学習結果が
ml-agents/results
に格納されるので、first3DBallRunをProjectウィンドウにドラッグしコピーする - Projectウィンドウから
first3DBallRun/run_logs
の3DBallを3DBall prefabのBehavior ParameterのModelにドラッグする - UnityのPlayボタンを押して学習結果を確認する
##トレーニングの進行を確認する
先ほど学習した結果をtensorboardで確認する
tensorboard --logdir results
上のコマンドを実行すると、自身のブラウザのhttp://localhost:6006
で確認できる
#まとめ
以上でインストールからテストまでは終了です。
間違いや不足点などございましたらおしらせ下さい。
また、自身で何をしたか確認する等の目的で書いたものなのでわかりづらい点などがあるかと思います。基本的には自身で公式のドキュメントを読んで実行するのがいいと思います。