UnityでML-Agentsを習得しようとして「Unity ML-Agents実践ゲームプログラミング」に沿ってやっていった中での学習の実行についての内容です。
目次
1.学習の実行についての基本的な内容
ML-Agentsで学習を実行するためにはコマンド「mlagents-learn」を使用します。
たとえば、
mlagents-learn <学習設定ファイルのパス> --run-id=<実行ID>
のような形で実行します。
上の本に沿ってやっていったときの「RollerBall」の例では、
「ml-agents-release_19フォルダ」直下に移動した状態で、
mlagents-learn ./config/sample/RollerBall.yaml --run-id=RollerBall-1
などにて実行します。
この中では、「./config/sample/RollerBall.yaml」が学習設定ファイルのパスで、「RollerBall.yaml」がRollerBall用学習設定ファイル、「RollerBall-1」が実行IDになります。
実行IDは出力するモデルのファイル名などに使われ、通常は新規学習するたびに別の実行IDを指定します。同じ実行IDを使用するとエラーが出ます。
以上が基本的な学習実行コマンドの説明になります。
2.学習再開や再学習時のmlagents-learnのコマンドライン引数
基本は以上のようになりますが、このコマンドにはコマンドライン引数を追加することができます。
この中でかなり重宝したものとしては、学習再開時や再学習時のための引数だったのですが、「--resume」や「--force」というようなものがありました。
「--resume」は一度中断などしてできた既存モデルに対して学習再開することができるものです。
一旦学習を実行させてモデルを作成し、設定、環境を変えてから再度先程のモデルに追加学習させるなどいろいろと使えそうかなと思いました。
「--force」は既存モデルの実行IDに対して最初から再学習するためのものです。
それぞれ、
mlagents-learn ./config/sample/RollerBall.yaml --run-id=RollerBall-1 --resume
mlagents-learn ./config/sample/RollerBall.yaml --run-id=RollerBall-1 --force
などとなります。
以上が、ML-Agentsの学習実行コマンド「mlagents-learn」についての説明になります。