比较提交

...
此合并请求有变更与目标分支冲突。
/Project/Packages/manifest.json
/Project/ProjectSettings/TagManager.asset
/Project/ProjectSettings/ProjectVersion.txt
/Project/Assets/ML-Agents/Examples/Soccer/Scenes/SoccerTwos.unity
/Project/Assets/ML-Agents/Examples/Soccer/Prefabs/SoccerFieldTwos.prefab
/Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccer.cs
/ml-agents/mlagents/trainers/trainer_controller.py
/config/ppo/SoccerTwos.yaml
/Project/Assets/ML-Agents/Examples/Soccer/Scripts/SoccerFieldArea.cs

7 次代码提交

作者 SHA1 备注 提交日期
Andrew Cohen 6ded81bf preparing to rebase 4 年前
Andrew Cohen f67267b8 preparing to rebase onto cc 4 年前
Andrew Cohen 5bbe796b update soccer raycasts 4 年前
Andrew Cohen 5b2e704f updated heuristic 4 年前
Andrew Cohen b7232ccc continuous move, disc comms 4 年前
Andrew Cohen f9062e02 refactor collab agent 4 年前
Andrew Cohen cb37d0d1 added disc comms 4 年前
共有 17 个文件被更改,包括 2037 次插入124 次删除
  1. 41
      config/ppo/SoccerTwos.yaml
  2. 2
      ml-agents/mlagents/trainers/trainer_controller.py
  3. 21
      Project/Packages/manifest.json
  4. 6
      Project/ProjectSettings/DynamicsManager.asset
  5. 3
      Project/ProjectSettings/ProjectVersion.txt
  6. 4
      Project/ProjectSettings/TagManager.asset
  7. 40
      Project/Assets/ML-Agents/Examples/Soccer/Scenes/SoccerTwos.unity
  8. 4
      Project/Assets/ML-Agents/Examples/Soccer/Scripts/SoccerFieldArea.cs
  9. 149
      Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccer.cs
  10. 660
      Project/Assets/ML-Agents/Examples/Soccer/Prefabs/SoccerFieldTwos.prefab
  11. 15
      Project/ProjectSettings/BurstAotSettings_StandaloneLinux64.json
  12. 15
      Project/ProjectSettings/BurstAotSettings_StandaloneOSX.json
  13. 10
      Project/ProjectSettings/XRSettings.asset
  14. 11
      Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccerCollab.cs.meta
  15. 166
      Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccerCollab.cs
  16. 1001
      Project/Assets/ML-Agents/Examples/Soccer/TFModels/SoccerTwos-10999921.onnx
  17. 13
      Project/Assets/ML-Agents/Examples/Soccer/TFModels/SoccerTwos-10999921.onnx.meta

41
config/ppo/SoccerTwos.yaml


network_settings:
normalize: false
hidden_units: 512
num_layers: 2
num_layers: 3
vis_encode_type: simple
reward_signals:
extrinsic:

max_steps: 50000000
max_steps: 100000000
time_horizon: 1000
summary_freq: 10000
threaded: false

window: 10
play_against_latest_model_ratio: 0.5
initial_elo: 1200.0
environment_parameters:
ball_touch:
curriculum:
- name: Lesson0
completion_criteria:
measure: progress
behavior: SoccerTwos
signal_smoothing: true
min_lesson_length: 100
threshold: 0.0005
value: 1.0
- name: Lesson1
completion_criteria:
measure: progress
behavior: SoccerTwos
signal_smoothing: true
min_lesson_length: 100
threshold: 0.001
value: 0.5
- name: Lesson2
completion_criteria:
measure: progress
behavior: SoccerTwos
signal_smoothing: true
min_lesson_length: 100
threshold: 0.0015
value: 0.1
- name: Lesson3
completion_criteria:
measure: progress
behavior: SoccerTwos
signal_smoothing: true
min_lesson_length: 100
threshold: 0.002
value: 0.0
env_settings:
num_envs: 2

2
ml-agents/mlagents/trainers/trainer_controller.py


def reset_env_if_ready(self, env: EnvManager) -> None:
# Get the sizes of the reward buffers.
reward_buff = {k: list(t.reward_buffer) for (k, t) in self.trainers.items()}
curr_step = {k: int(t.step) for (k, t) in self.trainers.items()}
curr_step = {k: int(t.get_step) for (k, t) in self.trainers.items()}
max_step = {k: int(t.get_max_steps) for (k, t) in self.trainers.items()}
# Attempt to increment the lessons of the brains who
# were ready.

21
Project/Packages/manifest.json


{
"dependencies": {
"com.unity.2d.sprite": "1.0.0",
"com.unity.2d.tilemap": "1.0.0",
"com.unity.analytics": "3.2.3",
"com.unity.collab-proxy": "1.2.15",
"com.unity.analytics": "3.3.2",
"com.unity.collab-proxy": "1.2.16",
"com.unity.ext.nunit": "1.0.0",
"com.unity.ide.rider": "1.1.0",
"com.unity.ide.vscode": "1.0.7",
"com.unity.package-manager-ui": "2.0.8",
"com.unity.purchasing": "2.0.3",
"com.unity.textmeshpro": "1.4.1",
"com.unity.multiplayer-hlapi": "1.0.2",
"com.unity.package-manager-ui": "2.2.0",
"com.unity.purchasing": "2.0.6",
"com.unity.test-framework": "1.0.13",
"com.unity.textmeshpro": "2.0.1",
"com.unity.timeline": "1.1.0",
"com.unity.ugui": "1.0.0",
"com.unity.xr.legacyinputhelpers": "2.0.2",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.assetbundle": "1.0.0",
"com.unity.modules.audio": "1.0.0",

6
Project/ProjectSettings/DynamicsManager.asset


--- !u!55 &1
PhysicsManager:
m_ObjectHideFlags: 0
serializedVersion: 10
serializedVersion: 13
m_Gravity: {x: 0, y: -9.81, z: 0}
m_DefaultMaterial: {fileID: 0}
m_BounceThreshold: 2

m_ClothInterCollisionDistance: 0
m_ClothInterCollisionStiffness: 0
m_ContactsGeneration: 1
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebffffffddffffffeffffffff5fffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffdfffffffeffffffff5fffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_ClothGravity: {x: 0, y: -9.81, z: 0}
m_ContactPairsMode: 0
m_BroadphaseType: 0
m_WorldBounds:

m_FrictionType: 0
m_EnableEnhancedDeterminism: 1
m_EnableUnifiedHeightmaps: 1
m_DefaultMaxAngularSpeed: 7

3
Project/ProjectSettings/ProjectVersion.txt


m_EditorVersion: 2018.4.24f1
m_EditorVersion: 2019.2.2f1
m_EditorVersionWithRevision: 2019.2.2f1 (ab112815d860)

4
Project/ProjectSettings/TagManager.asset


-
-
- invisible
-
-
- soccerball
- wallgoal
-
-
-

40
Project/Assets/ML-Agents/Examples/Soccer/Scenes/SoccerTwos.unity


m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 10
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024

m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1

m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 500
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVRFilteringMode: 1
m_PVREnvironmentMIS: 0
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5

m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightingDataAsset: {fileID: 112000002, guid: 03723c7f910c3423aa1974f1b9ce8392,
type: 2}
m_UseShadowmask: 1

m_GameObject: {fileID: 255077123}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal

m_GameObject: {fileID: 255077123}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}

m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1537641056927260, guid: 3ce107b4a79bc4eef83afde434932a68, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224194346362733190, guid: 3ce107b4a79bc4eef83afde434932a68,
type: 3}
propertyPath: m_LocalPosition.x

propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 4540201673231058, guid: 54f3340298537426e96a6cc530e2d5d8, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 54f3340298537426e96a6cc530e2d5d8, type: 3}
--- !u!1 &1009000883

m_ClearFlags: 2
m_BackGroundColor: {r: 0.46666667, g: 0.5647059, b: 0.60784316, a: 1}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_GateFitMode: 2
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2

m_Name:
m_EditorClassIdentifier:
gravityMultiplier: 1
monitorVerticalOffset: 0
reuseCollisionCallbacks: 1
--- !u!114 &1574236051
MonoBehaviour:
m_ObjectHideFlags: 0

blueMaterial: {fileID: 2100000, guid: c9fa44c2c3f8ce74ca39a3355ea42631, type: 2}
randomizePlayersTeamForTraining: 0
agentRunSpeed: 2
strikerPunish: -0.1
strikerReward: 1
goaliePunish: -1
goalieReward: 0.1
--- !u!1001 &1606160104
PrefabInstance:
m_ObjectHideFlags: 0

- target: {fileID: 4558743310993102, guid: 54f3340298537426e96a6cc530e2d5d8, type: 3}
propertyPath: m_RootOrder
value: 6
objectReference: {fileID: 0}
- target: {fileID: 114387866097048300, guid: 54f3340298537426e96a6cc530e2d5d8,
type: 3}
propertyPath: m_BehaviorType
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 54f3340298537426e96a6cc530e2d5d8, type: 3}

4
Project/Assets/ML-Agents/Examples/Soccer/Scripts/SoccerFieldArea.cs


public void ResetBall()
{
ball.transform.position = ballStartingPos;
var randomX = Random.Range(-2.0f, 2.0f);
var randomZ = Random.Range(-2.0f, 2.0f);
ball.transform.position = ballStartingPos + new Vector3(randomX, 0f, randomZ);
ballRb.velocity = Vector3.zero;
ballRb.angularVelocity = Vector3.zero;

149
Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccer.cs


using System;
using Unity.MLAgents.Sensors;
public class AgentSoccer : Agent
{

float m_KickPower;
int m_PlayerIndex;
public SoccerFieldArea area;
// The coefficient for the reward for colliding with a ball. Set using curriculum.
float m_BallTouch;
public Position position;

if (m_BehaviorParameters.TeamId == (int)Team.Blue)
{
team = Team.Blue;
m_Transform = new Vector3(transform.position.x - 4f, .5f, transform.position.z);
m_Transform = new Vector3(transform.position.x - 3f, .5f, transform.position.z);
m_Transform = new Vector3(transform.position.x + 4f, .5f, transform.position.z);
m_Transform = new Vector3(transform.position.x + 3f, .5f, transform.position.z);
}
if (position == Position.Goalie)
{

}
else
{
m_LateralSpeed = 0.3f;
m_ForwardSpeed = 1.0f;
m_LateralSpeed = 0.6f;
m_ForwardSpeed = 1.5f;
}
m_SoccerSettings = FindObjectOfType<SoccerSettings>();
agentRb = GetComponent<Rigidbody>();

m_ResetParams = Academy.Instance.EnvironmentParameters;
}
public void MoveAgent(ActionSegment<int> act)
public void MoveAgent(ActionSegment<float> act)
{
var dirToGo = Vector3.zero;
var rotateDir = Vector3.zero;

var forwardAxis = act[0];
var rightAxis = act[1];
var rotateAxis = act[2];
switch (forwardAxis)
var forward = Mathf.Clamp(act[0], -1f, 1f);
var right = Mathf.Clamp(act[1], -1f, 1f);
var rotate = Mathf.Clamp(act[2], -1f, 1f);
dirToGo = transform.forward * forward * m_ForwardSpeed;
dirToGo += transform.right * right * m_LateralSpeed;
rotateDir = -transform.up * rotate;
if (forward > 0)
case 1:
dirToGo = transform.forward * m_ForwardSpeed;
m_KickPower = 1f;
break;
case 2:
dirToGo = transform.forward * -m_ForwardSpeed;
break;
m_KickPower = forward;
switch (rightAxis)
{
case 1:
dirToGo = transform.right * m_LateralSpeed;
break;
case 2:
dirToGo = transform.right * -m_LateralSpeed;
break;
}
//m_KickPower = 0f;
//var forwardAxis = act[0];
//var rightAxis = act[1];
//var rotateAxis = act[2];
//switch (forwardAxis)
//{
// case 1:
// dirToGo = transform.forward * m_ForwardSpeed;
// m_KickPower = 1f;
// break;
// case 2:
// dirToGo = transform.forward * -m_ForwardSpeed;
// break;
//}
//switch (rightAxis)
//{
// case 1:
// dirToGo = transform.right * m_LateralSpeed;
// break;
// case 2:
// dirToGo = transform.right * -m_LateralSpeed;
// break;
//}
switch (rotateAxis)
{
case 1:
rotateDir = transform.up * -1f;
break;
case 2:
rotateDir = transform.up * 1f;
break;
}
//switch (rotateAxis)
//{
// case 1:
// rotateDir = transform.up * -1f;
// break;
// case 2:
// rotateDir = transform.up * 1f;
// break;
//}
transform.Rotate(rotateDir, Time.deltaTime * 100f);
transform.Rotate(rotateDir, Time.deltaTime * 200f);
agentRb.AddForce(dirToGo * m_SoccerSettings.agentRunSpeed,
ForceMode.VelocityChange);
}

// Existential penalty cumulant for Generic
timePenalty -= m_Existential;
}
MoveAgent(actionBuffers.DiscreteActions);
//MoveAgent(actionBuffers.DiscreteActions);
MoveAgent(actionBuffers.ContinuousActions);
var discreteActionsOut = actionsOut.DiscreteActions;
discreteActionsOut.Clear();
var contOut = actionsOut.ContinuousActions;
contOut.Clear();
discreteActionsOut[0] = 1;
contOut[0] = 1f;
discreteActionsOut[0] = 2;
contOut[0] = -1f;
if (Input.GetKey(KeyCode.A))
if (Input.GetKey(KeyCode.Q))
discreteActionsOut[2] = 1;
contOut[1] = -1f;
if (Input.GetKey(KeyCode.D))
if (Input.GetKey(KeyCode.E))
discreteActionsOut[2] = 2;
contOut[1] = 1f;
if (Input.GetKey(KeyCode.E))
if (Input.GetKey(KeyCode.D))
discreteActionsOut[1] = 1;
contOut[2] = 1f;
if (Input.GetKey(KeyCode.Q))
if (Input.GetKey(KeyCode.A))
discreteActionsOut[1] = 2;
contOut[2] = -1f;
//var discreteActionsOut = actionsOut.DiscreteActions;
//discreteActionsOut.Clear();
////forward
//if (Input.GetKey(KeyCode.W))
//{
// discreteActionsOut[0] = 1;
//}
//if (Input.GetKey(KeyCode.S))
//{
// discreteActionsOut[0] = 2;
//}
////rotate
//if (Input.GetKey(KeyCode.A))
//{
// discreteActionsOut[2] = 1;
//}
//if (Input.GetKey(KeyCode.D))
//{
// discreteActionsOut[2] = 2;
//}
////right
//if (Input.GetKey(KeyCode.E))
//{
// discreteActionsOut[1] = 1;
//}
//if (Input.GetKey(KeyCode.Q))
//{
// discreteActionsOut[1] = 2;
//}
}
/// <summary>
/// Used to provide a "kick" to the ball.

{
transform.rotation = Quaternion.Euler(0f, 90f, 0f);
}
transform.position = m_Transform;
var randomX = Random.Range(-3.0f, 3.0f);
var randomZ = Random.Range(-0.5f, 0.5f);
transform.position = m_Transform + new Vector3(randomX, 0f, randomZ);
agentRb.velocity = Vector3.zero;
agentRb.angularVelocity = Vector3.zero;
SetResetParameters();

660
Project/Assets/ML-Agents/Examples/Soccer/Prefabs/SoccerFieldTwos.prefab
文件差异内容过多而无法显示
查看文件

15
Project/ProjectSettings/BurstAotSettings_StandaloneLinux64.json


{
"MonoBehaviour": {
"Version": 3,
"EnableBurstCompilation": true,
"EnableOptimisations": true,
"EnableSafetyChecks": false,
"EnableDebugInAllBuilds": false,
"UsePlatformSDKLinker": false,
"CpuMinTargetX32": 0,
"CpuMaxTargetX32": 0,
"CpuMinTargetX64": 0,
"CpuMaxTargetX64": 0,
"CpuTargetsX64": 72
}
}

15
Project/ProjectSettings/BurstAotSettings_StandaloneOSX.json


{
"MonoBehaviour": {
"Version": 3,
"EnableBurstCompilation": true,
"EnableOptimisations": true,
"EnableSafetyChecks": false,
"EnableDebugInAllBuilds": false,
"UsePlatformSDKLinker": false,
"CpuMinTargetX32": 0,
"CpuMaxTargetX32": 0,
"CpuMinTargetX64": 0,
"CpuMaxTargetX64": 0,
"CpuTargetsX64": 72
}
}

10
Project/ProjectSettings/XRSettings.asset


{
"m_SettingKeys": [
"VR Device Disabled",
"VR Device User Alert"
],
"m_SettingValues": [
"False",
"False"
]
}

11
Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccerCollab.cs.meta


fileFormatVersion: 2
guid: 506fb6eabb24441ffa15342d72f0bdd2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

166
Project/Assets/ML-Agents/Examples/Soccer/Scripts/AgentSoccerCollab.cs


using UnityEngine;
using Unity.MLAgents;
using Unity.MLAgents.Actuators;
using Unity.MLAgents.Policies;
using Unity.MLAgents.Sensors;
public class AgentSoccerCollab : AgentSoccer
{
public int tester = 0;
int m_Previous = 0;
float[] m_Message = new float[2];
public GameObject teammate_gb;
AgentSoccerCollab teammate;
public override void Initialize()
{
base.Initialize();
teammate = teammate_gb.GetComponent<AgentSoccerCollab>();
}
public override void OnActionReceived(ActionBuffers actionBuffers)
{
base.OnActionReceived(actionBuffers);
//if (team == Team.Blue && tester == 0)
//{
// Debug.Log("cont");
// Debug.Log(actionBuffers.ContinuousActions[2]);
//}
//else if (team == Team.Blue && tester == 1)
//{
// Debug.Log("mess");
// Debug.Log(actionBuffers.DiscreteActions[0]);
//}
teammate.tellAgent(actionBuffers.DiscreteActions[0]);
}
public override void CollectObservations(VectorSensor sensor)
{
sensor.AddObservation(m_Message);
}
public void tellAgent(int message)
{
m_Message[m_Previous] = 0f;
//if (team == Team.Purple)
//{
// message = Random.Range(0, 2);
//}
m_Message[message] = 1f;
m_Previous = message;
}
public override void OnEpisodeBegin()
{
base.OnEpisodeBegin();
System.Array.Clear(m_Message, 0, m_Message.Length);
}
public override void Heuristic(in ActionBuffers actionsOut)
{
var discreteActionsOut = actionsOut.DiscreteActions;
discreteActionsOut.Clear();
if (Input.GetKey(KeyCode.Alpha0))
{
discreteActionsOut[0] = 0;
}
if (Input.GetKey(KeyCode.Alpha1))
{
discreteActionsOut[0] = 1;
}
if (Input.GetKey(KeyCode.Alpha2))
{
discreteActionsOut[0] = 2;
}
if (Input.GetKey(KeyCode.Alpha3))
{
discreteActionsOut[0] = 3;
}
if (Input.GetKey(KeyCode.Alpha4))
{
discreteActionsOut[0] = 4;
}
if (Input.GetKey(KeyCode.Alpha5))
{
discreteActionsOut[0] = 5;
}
if (Input.GetKey(KeyCode.Alpha6))
{
discreteActionsOut[0] = 6;
}
if (Input.GetKey(KeyCode.Alpha7))
{
discreteActionsOut[0] = 7;
}
if (Input.GetKey(KeyCode.Alpha8))
{
discreteActionsOut[0] = 8;
}
if (Input.GetKey(KeyCode.Alpha9))
{
discreteActionsOut[0] = 9;
}
var contOut = actionsOut.ContinuousActions;
contOut.Clear();
//forward
if (Input.GetKey(KeyCode.W))
{
contOut[0] = 1f;
}
if (Input.GetKey(KeyCode.S))
{
contOut[0] = -1f;
}
//rotate
if (Input.GetKey(KeyCode.Q))
{
contOut[1] = -1f;
}
if (Input.GetKey(KeyCode.E))
{
contOut[1] = 1f;
}
//right
if (Input.GetKey(KeyCode.D))
{
contOut[2] = 1f;
}
if (Input.GetKey(KeyCode.A))
{
contOut[2] = -1f;
}
////forward
//if (Input.GetKey(KeyCode.W))
//{
// discreteActionsOut[0] = 1;
//}
//if (Input.GetKey(KeyCode.S))
//{
// discreteActionsOut[0] = 2;
//}
////rotate
//if (Input.GetKey(KeyCode.A))
//{
// discreteActionsOut[2] = 1;
//}
//if (Input.GetKey(KeyCode.D))
//{
// discreteActionsOut[2] = 2;
//}
////right
//if (Input.GetKey(KeyCode.E))
//{
// discreteActionsOut[1] = 1;
//}
//if (Input.GetKey(KeyCode.Q))
//{
// discreteActionsOut[1] = 2;
//}
}
}

1001
Project/Assets/ML-Agents/Examples/Soccer/TFModels/SoccerTwos-10999921.onnx
文件差异内容过多而无法显示
查看文件

13
Project/Assets/ML-Agents/Examples/Soccer/TFModels/SoccerTwos-10999921.onnx.meta


fileFormatVersion: 2
guid: fb0dcbf8aad8340428473b83fbb41557
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
optimizeModel: 1
forceArbitraryBatchSize: 1
treatErrorsAsWarnings: 0
正在加载...
取消
保存