SPARKCREATIVE Tech Blog

https://www.spark-creative.jp/

Unity Ml-agents

こんにちは!! スパーククリエイティブ社のクライアントエンジニアニタナワレピユシュ(Piyush Nitnaware)です。

※まだ日本語の勉強していますので、何か間違えたら申し訳ございませんでした。

今日はUntiyの新しいオープンソースプラグインMl-agentsのPython側の設定を理解しましょう。

Unityが好きな方にUnityのMl-agentsのプラグインも好きになります。このプラグインのおかげでUnityで機械学習 のタスクもできます。

以下はUnityMl-agentsのリンクです、このリンクにUnityプロジェクトの設定を説明していますのでぜひご覧ください。

github.com 

Pythonのインストール

Pythonをインストするため以下のリンクからPythonのセットアップファイルをダウンロードしてください。
ノート:Pythonのバージョンを確認するためUnity(ml-agents)のドキュメントを参照してください。
www.python.org

Python環境変数 の設定するため以下のリンクを参照してください。
https://www.javadrive.jp/python/install/index3.html

 
Pythonのバーチャル 環境 を作成しましょう

バーチャル環境を使うの理由
1.時々プロジェクトで特定なバージョンのライブラリは必要になります、バーチャル環境のおかげでこの依存の管理は楽になります。
2.一つプロンプトで複数バーチャル環境を作成することができますので特定なテストが簡単にできます。


バーチャル 環境 のドキュメント: https://docs.python.org/ja/3/library/venv.html


 Pythonをインストしたらコマンドプロンプトを実行してください。

コマンドプロンプトでCDを書いて、Unityプロジェクトのパスを入れてください。

f:id:spark-nitnaware-piyush:20210423121316p:plain

 そして、以下のコマンドを入力してください。

python -m venv 「バーチャル 環境名」

f:id:spark-nitnaware-piyush:20210423121626p:plain

上記のコマンドを実行したら「venv」というフォルダが作成されるはずです。

👏おめでとう 、バーチャル 環境を作成しました。

以下のバッチファイルを実行したらバーチャル 環境をアクティベート になります。
f:id:spark-nitnaware-piyush:20210422142748p:plain

以下のコマンドでコンソールからバーチャル 環境をアクティベートすることができます。

設定したバーチャル 環境名¥Script¥activate.bat

f:id:spark-nitnaware-piyush:20210422142804p:plain

・コマンド:venv¥Scripts¥activate.bat

今UnityのMl-agentsに関するいろいろなパッケージ をインストールしましょう。

Unityはドキュメントを頻りに更新しますので、パッケージのバージョンを確認するためドキュメントを見た方がいいです。
github.com


必要なパッケージ 

パッケージをインストするの順番が必要ですので以下の順番でパッケージをインストしてください。

①install torch~=1.7.1 -f https://download.pytorch.org/whl/torch_stable.html

python -m pip install mlagents==0.25.1

 
UnityでMl-agentsのトレーニングを開始しましょう

ノート:Ml-agentsのトレーニングを開始する前にUnityEditorでエージェントの設定を確認する。
BehaviorParameterスクリプトを追加されたオブジェクトに以下の設定をしてください。
A.Model:None
B.BehaviorParameter:Default

f:id:spark-nitnaware-piyush:20210430101010p:plain

プロジェクトでMl-agentsのトレーニングを開始するためコマンドプロンプトで以下のコマンドを入力したらUnityEditorでPlayボタンを押してください。

mlagents-learn --run-id=特定Id

f:id:spark-nitnaware-piyush:20210423121709p:plain

Pythonコマンド:
mlagents-learn --run-id=Test1

・Configファイルを使っている場合:

mlagents-learn config/PinballAgent.yaml --run-id=Test1

・既存のトレーニングIDに続ける場合:

mlagents-learn --initialize-from=前の実行ID --resume

f:id:spark-nitnaware-piyush:20210422142956p:plain

レーニングが終わったら以下のログを出すはずです。

f:id:spark-nitnaware-piyush:20210422143011p:plain

レーニングの結果は「Result\設定した実行Id\エージェント名 .onnx」ファイルに保存されます。

このファイルはUnityのエージェントで使うことができます。

f:id:spark-nitnaware-piyush:20210422143026p:plain

レーニング中のTensorBoardの結果

レーニングを実行中の結果を見るため新しいコマンドプロンプトを実行してください。

そして、現在のプロジェクトにCDし、バーチャル 環境をアクティベート をしてください。

最後に以下のコマンドを入力してください。

Pythonコマンド: tensorboard --logdir results

f:id:spark-nitnaware-piyush:20210423121747p:plain

今は「http://localhost:6006/」リンクをブラウザに実行するとTensorBoardのグラフが見えます。

f:id:spark-nitnaware-piyush:20210422143116p:plain 

このml-agentsプラグインのおかげで、Unityエンジンを機械学習業界でも使用ことができます。

テストプロジェクト
f:id:spark-nitnaware-piyush:20210430105711g:plain
github.com

最後まで読んでくれてありがとうございました。

じゃまた!!