前回まででUnityでのML-Agentsを使って学習をさせようとした時のエラーがいくつかありましたが、最後にもう1つ?以下のようなエラーが発生しました。
mlagents.trainers.exception.TrainerConfigError: The behavior name RollerBall has not been specified in the trainer configuration. Please add an entry in the configuration file for RollerBall, or set default_settings.
これについての解決方法も備忘録として残しておきまます。
先程の内容ですが、
mlagents.trainers.exception.TrainerConfigError: The behavior name RollerBall has not been specified in the trainer configuration. Please add an entry in the configuration file for RollerBall, or set default_settings.
となっています。
これは、以下の書籍のあるサンプル例のプロジェクトをやろうとした時のものですが、Unity側のBehavior nameとconfigフォルダ内にあるyaml設定ファイル側のnameが不一致というものです。
Unity側のBehavior nameとconfigフォルダ内にあるyaml設定ファイル側のnameのどちらかを変更して一致させることになります。
具体的には、
configフォルダ内にあるyaml設定ファイル側のnameの場合は、以下のような設定内容になっているのでこの例では2行目の「RollerBall」を変更することになります。
RollerBall.yaml
behaviors:
RollerBall:
trainer_type: ppo
max_steps: 50000000
time_horizon: 1000
summary_freq: 10000
keep_checkpoints: 5
Unity内の場合は、Agentオブジェクトに設定された「Behavior Parameters」内に以下のような設定がありますので、この中の「Behavior Name」を変更します。
以上の例では、RollerBall.yaml側が「RollerBall」、UnityのBehavior Parameters側が「SelfPlayEx」となっているので、どちらかを変更して、名称を「RollerBall」または
「SelfPlayEx」に一致させます。
以上が、”The behavior name ******** has not been specified in the trainer configuration.”のエラーが表示された時の解決方法になります。