Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Unity Python】ML-Agentsで”The behavior name ******** has not been specified in the trainer configuration.”のエラーが表示された時の解決方法


前回までで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.

 

これについての解決方法も備忘録として残しておきまます。

 

 

 

 

 

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.

 

となっています。

 

これは、以下の書籍のあるサンプル例のプロジェクトをやろうとした時のものですが、Unity側のBehavior nameとconfigフォルダ内にあるyaml設定ファイル側のnameが不一致というものです。

 

 

 

2.解決方法

 

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.”のエラーが表示された時の解決方法になります。