【Unity】ml-agentsを見える化したい

とりあえず出力層を見える化してみよう

エラーが出るな・・・

using System.Collections.Generic;
using System.Collections;
using UnityEngine;
using MLAgents;
public class RollerAgent : Agent {
Rigidbody rBody;
//☆☆☆☆☆☆☆☆☆☆ここから☆☆☆☆☆☆☆☆☆☆☆

public GameObject output;
//☆☆☆☆☆☆☆☆☆☆ここまで追加コード☆☆☆☆☆☆☆☆☆☆☆

private void Start()
{
rBody = GetComponent();

}
public Transform Target;
public Transform Floor;
private float previousDistance = float.MaxValue;
public override void AgentReset()
{
// 前回の距離をリセット
previousDistance = float.MaxValue;
if (this.transform.position.y < -1.0) { // エージェントが落ちた this.transform.position = Floor.transform.position + Vector3.zero; this.rBody.angularVelocity = Vector3.zero; this.rBody.velocity = Vector3.zero; } else { // ターゲットを新しい場所へ移動させる Target.position = new Vector3( Floor.transform.position.x + Random.value*8-4, Floor.transform.position.y + 0.5f, Floor.transform.position.z +Random.value*8-4 ); } } public override void CollectObservations() { // 相対座標を計算(Calculate relative position) Vector3 relativePosition = Target.position - this.transform.position; // 相対座標を正規化して設定(Relative position) AddVectorObs(relativePosition.x/5); AddVectorObs(relativePosition.z/5); // 床の隅からの距離を正規化した値を設定(Distance to edges of platform) AddVectorObs((this.transform.position.x + 5)/5); AddVectorObs((this.transform.position.x - 5)/5); AddVectorObs((this.transform.position.z + 5)/5); AddVectorObs((this.transform.position.z - 5)/5); // エージェントの速度(Agent velocity) AddVectorObs(rBody.velocity.x/5); AddVectorObs(rBody.velocity.z/5); } public float speed = 10; public override void AgentAction(float[] vectorAction, string textAction) { // Targetとの距離 float distanceToTarget = Vector3.Distance( this.transform.position, Target.position); // Targetに接触したか if (distanceToTarget < 1.42f) { AddReward(1); Done(); } // 近づいたサブリワード if (distanceToTarget

[/codebox] [/open]

コメントを残す