開発環境構築には慎重だったM1 Macも少しづつ安定してきたので、Unityの強化学習環境を構築。いくつかハマった部分も含めて手順メモ。
インストール環境
macOS Big Sur 11.5.1
Unity = 2020.3.15f2
Python = 3.8.2(Miniforge)
ML-Agents Toolkitのダウンロード
git clone --branch release_18 https://github.com/Unity-Technologies/ml-agents.git
Document/Unityフォルダ(ここは任意)にml-agentsをクローン。
M1はMiniforgeで環境構築していたので、Unity用の仮想環境を構築します。
conda create -n unity python=3.8.6
conda activate unity
Python環境の設定
Pytorch1.8.0インストール
最近pip install torchでインストールできるようになったのですが、導入される1.9.0では不具合がおきるので、ソースからビルドも試したのですがうまくいかず、結局、あらかじめ有志が用意したバイナリーからインストールしました。(ここは自己責任で!)
上記ファイルをDownloadsフォルダにいれインストール
pip install ~/Downloads/torch-1.8.0a0-cp38-cp38-macosx_11_0_arm64.whl
pip install torchvision
pip install torchaudio
ml-agentsパッケージのインストール
次にml-agentsを導入します。公式のインストール手順通りだとエラーがでたので、いくつか事前にファイルを追加。
conda install grpcio h5py
先ほどgit cloneでインストールしたml-agentsディレクトリーに移動して
pip install -e ./ml-agents-envs
pip install -e ./ml-agents
公式のインストール手順の確認
Unityにml-agentsパッケージを設定
Unity Hubから直接ml-agents/Pojectフォルダを開く。(従来のように、ml-agents/Project/Assets/ML-AgentsフォルダをUnityのAssetsフォルダーにドラックする方法だとエラー)
この手順だと、公式にあるPackage Panager -> 「+ → Add package from disk」で「com.unity.ml-agents/package.json」などのインストール手順がないのですが、インストールされたml-agentsパッケージの更新はわすれずに。(ここも更新しないとエラーが発生)
ML-Agentsを動かす
Assets/ML-Agents/ExamplesにあるプロジェクトのScenesから動かしたいシーンファイルを選択。
ここでは、3DBallプロジェクトを立ち上げ。
ターミナルでml-agents フォルダーに入り以下のコマンドを起動。
mlagents-learn config/ppo/3DBall.yaml --run-id=3DBall01
シーン名と同じyamlファイルを設定して –run-id=のところ(ここでは[3DBall01])は毎回任意の名前を設定してください。
待ち受け状態になるので、スタートボタンを押すと学習が始まります。
学習が終わるか、スタートボタンを押す、もしくはターミナルでCtrl + Cを押すと止まります。
学習途中で止めた時など、続きから学習を重ねたい場合は
mlagents-learn config/ppo/3DBall.yaml --run-id=3DBall01 --resume
末尾に「–resume」を加えて起動。再度Unityのスタートボタンを押します。
学習曲線の確認
学習曲線を表示するには
tensorboard --logdir results
コマンド入力後、http://localhost:6006/ で確認ができます。
その他
その他、学習したファイルでの確認などは、以下のGetting Started Guideを参考に。
また追記していきます。