Unity 机器学习代理工具包 (ML-Agents) 是一个开源项目,它使游戏和模拟能够作为训练智能代理的环境。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

2.2 KiB

Using the Monitor

Monitor

The monitor allows visualizing information related to the agents or training process within a Unity scene.

You can track many different things both related and unrelated to the agents themselves. By default, the Monitor is only active in the inference phase, so not during training. To change this behavior, you can activate or deactivate it by calling SetActive(boolean). For example to also show the monitor during training, you can call it in the Awake() method of your MonoBehaviour:

using Unity.MLAgents;

public class MyBehaviour : MonoBehaviour {
    public void Awake()
    {
        Monitor.SetActive(true);
    }
}

To add values to monitor, call the Log function anywhere in your code:

Monitor.Log(key, value, target)
  • key is the name of the information you want to display.
  • value is the information you want to display. value can have different types:
    • string - The Monitor will display the string next to the key. It can be useful for displaying error messages.
    • float - The Monitor will display a slider. Note that the values must be between -1 and 1. If the value is positive, the slider will be green, if the value is negative, the slider will be red.
    • float[] - The Monitor Log call can take an additional argument called displayType that can be either INDEPENDENT (default) or PROPORTIONAL:
      • INDEPENDENT is used to display multiple independent floats as a histogram. The histogram will be a sequence of vertical sliders.
      • PROPORTION is used to see the proportions between numbers. For each float in values, a rectangle of width of value divided by the sum of all values will be show. It is best for visualizing values that sum to 1.
  • target is the transform to which you want to attach information. If the transform is null the information will be attached to the global monitor.
    • NB: When adding a target transform that is not the global monitor, make sure you have your main camera object tagged as MainCamera via the inspector. This is needed to properly display the text onto the screen.