| | using System; |
| | using System.Collections.Generic; |
| | using Unity.MLAgents.Actuators; |
| | using Unity.MLAgents.Sensors; |
| |
|
| | namespace Unity.MLAgents.Analytics |
| | { |
| | internal struct InferenceEvent |
| | { |
| | |
| | |
| | |
| | public string BehaviorName; |
| | public string BarracudaModelSource; |
| | public string BarracudaModelVersion; |
| | public string BarracudaModelProducer; |
| | public string BarracudaPackageVersion; |
| | |
| | |
| | |
| | public int InferenceDevice; |
| | public List<EventObservationSpec> ObservationSpecs; |
| | public EventActionSpec ActionSpec; |
| | public List<EventActuatorInfo> ActuatorInfos; |
| | public int MemorySize; |
| | public long TotalWeightSizeBytes; |
| | public string ModelHash; |
| | } |
| |
|
| | |
| | |
| | |
| | [Serializable] |
| | internal struct EventActionSpec |
| | { |
| | public int NumContinuousActions; |
| | public int NumDiscreteActions; |
| | public int[] BranchSizes; |
| |
|
| | public static EventActionSpec FromActionSpec(ActionSpec actionSpec) |
| | { |
| | var branchSizes = actionSpec.BranchSizes ?? Array.Empty<int>(); |
| | return new EventActionSpec |
| | { |
| | NumContinuousActions = actionSpec.NumContinuousActions, |
| | NumDiscreteActions = actionSpec.NumDiscreteActions, |
| | BranchSizes = branchSizes, |
| | }; |
| | } |
| | } |
| |
|
| | |
| | |
| | |
| | [Serializable] |
| | internal struct EventActuatorInfo |
| | { |
| | public int BuiltInActuatorType; |
| | public int NumContinuousActions; |
| | public int NumDiscreteActions; |
| |
|
| | public static EventActuatorInfo FromActuator(IActuator actuator) |
| | { |
| | BuiltInActuatorType builtInActuatorType = Actuators.BuiltInActuatorType.Unknown; |
| | if (actuator is IBuiltInActuator builtInActuator) |
| | { |
| | builtInActuatorType = builtInActuator.GetBuiltInActuatorType(); |
| | } |
| |
|
| | var actionSpec = actuator.ActionSpec; |
| |
|
| | return new EventActuatorInfo |
| | { |
| | BuiltInActuatorType = (int)builtInActuatorType, |
| | NumContinuousActions = actionSpec.NumContinuousActions, |
| | NumDiscreteActions = actionSpec.NumDiscreteActions |
| | }; |
| | } |
| | } |
| |
|
| | |
| | |
| | |
| | [Serializable] |
| | internal struct EventObservationDimensionInfo |
| | { |
| | public int Size; |
| | public int Flags; |
| | } |
| |
|
| | |
| | |
| | |
| | [Serializable] |
| | internal struct EventObservationSpec |
| | { |
| | public string SensorName; |
| | public string CompressionType; |
| | public int BuiltInSensorType; |
| | public int ObservationType; |
| | public EventObservationDimensionInfo[] DimensionInfos; |
| |
|
| | public static EventObservationSpec FromSensor(ISensor sensor) |
| | { |
| | var obsSpec = sensor.GetObservationSpec(); |
| | var shape = obsSpec.Shape; |
| | var dimProps = obsSpec.DimensionProperties; |
| | var dimInfos = new EventObservationDimensionInfo[shape.Length]; |
| | for (var i = 0; i < shape.Length; i++) |
| | { |
| | dimInfos[i].Size = shape[i]; |
| | dimInfos[i].Flags = (int)dimProps[i]; |
| | } |
| |
|
| | var builtInSensorType = |
| | (sensor as IBuiltInSensor)?.GetBuiltInSensorType() ?? Sensors.BuiltInSensorType.Unknown; |
| |
|
| | return new EventObservationSpec |
| | { |
| | SensorName = sensor.GetName(), |
| | CompressionType = sensor.GetCompressionSpec().SensorCompressionType.ToString(), |
| | BuiltInSensorType = (int)builtInSensorType, |
| | ObservationType = (int)obsSpec.ObservationType, |
| | DimensionInfos = dimInfos, |
| | }; |
| | } |
| | } |
| |
|
| | internal struct RemotePolicyInitializedEvent |
| | { |
| | public string TrainingSessionGuid; |
| | |
| | |
| | |
| | public string BehaviorName; |
| | public List<EventObservationSpec> ObservationSpecs; |
| | public EventActionSpec ActionSpec; |
| | public List<EventActuatorInfo> ActuatorInfos; |
| |
|
| | |
| | |
| | |
| | |
| | public string MLAgentsEnvsVersion; |
| | public string TrainerCommunicationVersion; |
| | } |
| |
|
| | internal struct TrainingEnvironmentInitializedEvent |
| | { |
| | public string TrainingSessionGuid; |
| |
|
| | public string TrainerPythonVersion; |
| | public string MLAgentsVersion; |
| | public string MLAgentsEnvsVersion; |
| | public string TorchVersion; |
| | public string TorchDeviceType; |
| | public int NumEnvironments; |
| | public int NumEnvironmentParameters; |
| | public string RunOptions; |
| | } |
| |
|
| | [Flags] |
| | internal enum RewardSignals |
| | { |
| | Extrinsic = 1 << 0, |
| | Gail = 1 << 1, |
| | Curiosity = 1 << 2, |
| | Rnd = 1 << 3, |
| | } |
| |
|
| | [Flags] |
| | internal enum TrainingFeatures |
| | { |
| | BehavioralCloning = 1 << 0, |
| | Recurrent = 1 << 1, |
| | Threaded = 1 << 2, |
| | SelfPlay = 1 << 3, |
| | Curriculum = 1 << 4, |
| | } |
| |
|
| | internal struct TrainingBehaviorInitializedEvent |
| | { |
| | public string TrainingSessionGuid; |
| |
|
| | public string BehaviorName; |
| | public string TrainerType; |
| | public RewardSignals RewardSignalFlags; |
| | public TrainingFeatures TrainingFeatureFlags; |
| | public string VisualEncoder; |
| | public int NumNetworkLayers; |
| | public int NumNetworkHiddenUnits; |
| | public string Config; |
| | } |
| | } |
| |
|