環境設定
-
ml-agents 0.8.0
https://github.com/Unity-Technologies/ml-agents/tags/0.8.0
をダウンロードして、適当なところに配置 -
anaconda をインストール
ターミナルで「conda」と打って反応があれば既にインストール済み -
仮想環境を作る
conda info -e
で[ml-agents]があれば良い。なければ↓でつくる。
conda create -n ml-agents python=3.6
で仮想環境を作る(なんか聞かれたら「y」と入力)
conda activate ml-agents
で仮想環境切り替え
pip install tensorflow==1.7.1
で tensorflow を仮想環境にインストール
★★★ 注意 ★★★
このまま進めると、「kiwisolver」がビルドできなくて詰むので、別途独自に↓でインストールしておく。
conda install kiwisolver
これがなければ 次で kiwisolover をビルドしようとしてビルドできなくて詰む。 -
ML-Agents が使うライブラリをインストール
cd [ml-agentsのあるフォルダ]
pip install mlagents
とりあえずサンプルを動かしてみる
-
仮想環境に入る
既に↑で入っていればやらなくてもよし。入っていなければ↓を実行
cd [ml-agentsのあるフォルダ]
conda activate ml-agents
-
Unityサンプルシーンを用意
-
Unityを立ち上げて、[ml-agents]/UnitySDK を開く。
-
[ml-agents]/UnitySDK/Assets/ML-Agents/Examples/[開きたいサンプル]/Scenes/[やりたいシーン]をUnityで開く
-
Unityサンプルシーンを外部から機械学習できるようにする
-
なんちゃらAcademy というGameObject のインスペクターをみる(ex:Ball3DAcademy)
-
Brains の「Control」という項目をチェックを入れる

- 仮想環境で実行
ターミナルに戻って、以下を実行
mlagents-learn config/trainer_config.yaml --run-id=firstRun --train
すると、Unityのスタートボタン待ちになる

-
Unityでプレイ
-
学習済みデータの取得
-
いい頃合いでUnityプレイボタンを再度押して終了させて、学習を終わらせる
-
[ml-agents]/models/firstRun-0/[なんちゃら]Learning.nn ファイルをUnityプロジェクトにインポート(ドラッグ&ドロップ)。場所は適当。
-
Assets/ML-Agents/Examples/[サンプル]/Brains/[なんちゃら]Learning.asset を選択
-
「Model」のところをさっきインポートした学習済みNNファイルをドラッグ&ドロップ

- 先ほどのUnityサンプルを学習済みデータを使うようにする
なんちゃらAcademy というGameObject のインスペクターの Brains の「Control」という項目をチェックをはずす

長くなったので続きは次回!