Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Question two brains, one is trained by curriculum learning,another not.

Discussion in 'ML-Agents' started by ice_creamer, Sep 14, 2023.

  1. ice_creamer

    ice_creamer

    Joined:
    Jul 28, 2022
    Posts:
    33
    if there are two behaviors, one is trained by CL, another not. How can achieve it? I found CL setting in trainer.yaml is global.
     
  2. smallg2023

    smallg2023

    Joined:
    Sep 2, 2018
    Posts:
    102
    you should be able to assign the behaviour in the CL part of your .yaml

    Code (Boo):
    1. Lesson:
    2.     curriculum:
    3.         - name: FirstLesson
    4.           completion_criteria:
    5.             measure: reward
    6.             behavior: Crawler
    7.             signal_smoothing: true
    8.             min_lesson_length: 100
    9.             threshold: 0.1
    10.           value: 1.0
     
  3. ice_creamer

    ice_creamer

    Joined:
    Jul 28, 2022
    Posts:
    33
    Hmmm... There are two behavior(brains).
    CL is subordinate to environmental parameters. In the training file, the level and behavior of the environment parameters are the same. I initially thought that the name of the behavior in the YAML determines which behavior uses the CL, but it turned out that was not the case. It affects both behaviors. After that, I tried to subordinate the environment variable to the behavior I wanted to train with the course learning, but the mlagent reported an error, and the document specifically emphasized that the course learning is only subordinate to the environment parameter, that is, it cannot be further subordinate to a certain behavior.