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

96 行
3.5 KiB

using System.Collections.Generic;
using NUnit.Framework;
using Unity.MLAgents.Sensors;
using UnityEngine;
using Unity.Barracuda;
using Unity.MLAgents.Analytics;
using Unity.MLAgents.Policies;
using UnityEditor;
namespace Unity.MLAgents.Tests.Analytics
{
[TestFixture]
public class TrainingAnalyticsTests
{
[TestCase("foo?team=42", ExpectedResult = "foo")]
[TestCase("foo", ExpectedResult = "foo")]
[TestCase("foo?bar?team=1337", ExpectedResult = "foo?bar")]
public string TestParseBehaviorName(string fullyQualifiedBehaviorName)
{
return TrainingAnalytics.ParseBehaviorName(fullyQualifiedBehaviorName);
}
[Test]
public void TestRemotePolicy()
{
if (Academy.IsInitialized)
{
Academy.Instance.Dispose();
}
using (new AnalyticsUtils.DisableAnalyticsSending())
{
var brainParameters = new BrainParameters();
brainParameters.VectorObservationSize = 8;
brainParameters.VectorActionSize = new [] { 2 };
brainParameters.NumStackedVectorObservations = 1;
brainParameters.VectorActionSpaceType = SpaceType.Continuous;
var policy = new RemotePolicy(brainParameters, "TestBehavior?team=42");
policy.RequestDecision(new AgentInfo(), new List<ISensor>());
}
Academy.Instance.Dispose();
}
[Test]
public void TestBuiltInSensorType()
{
// Unknown
{
var sensor = new TestSensor("test");
Assert.AreEqual(sensor.GetBuiltInSensorType(), BuiltInSensorType.Unknown);
var stackingSensor = new StackingSensor(sensor, 2);
Assert.AreEqual(BuiltInSensorType.Unknown, stackingSensor.GetBuiltInSensorType());
}
// Vector
{
var sensor = new VectorSensor(6);
Assert.AreEqual(BuiltInSensorType.VectorSensor, sensor.GetBuiltInSensorType());
var stackingSensor = new StackingSensor(sensor, 2);
Assert.AreEqual(BuiltInSensorType.VectorSensor, stackingSensor.GetBuiltInSensorType());
}
var gameObject = new GameObject();
// Ray
{
var sensorComponent = gameObject.AddComponent<RayPerceptionSensorComponent3D>();
sensorComponent.DetectableTags = new List<string>();
var sensor = sensorComponent.CreateSensor();
Assert.AreEqual(BuiltInSensorType.RayPerceptionSensor, sensor.GetBuiltInSensorType());
var stackingSensor = new StackingSensor(sensor, 2);
Assert.AreEqual(BuiltInSensorType.RayPerceptionSensor, stackingSensor.GetBuiltInSensorType());
}
// Camera
{
var sensorComponent = gameObject.AddComponent<CameraSensorComponent>();
var sensor = sensorComponent.CreateSensor();
Assert.AreEqual(BuiltInSensorType.CameraSensor, sensor.GetBuiltInSensorType());
}
// RenderTexture
{
var sensorComponent = gameObject.AddComponent<RenderTextureSensorComponent>();
var sensor = sensorComponent.CreateSensor();
Assert.AreEqual(BuiltInSensorType.RenderTextureSensor, sensor.GetBuiltInSensorType());
}
}
}
}