// Update is called once per frame
    void Update()
    {
        var input_vector_obs = new Tensor(1, 1, 1, 8, new float[] { Target.position.x, Target.position.y, Target.position.z,
                                                                    this.transform.position.x, this.transform.position.y, this.transform.position.z, rBody.velocity.x, rBody.velocity.z });

        var input_eps = new Tensor(1, 1, 1, 1, new float[] { 0.2f });

        var dict = new Dictionary <string, Tensor>();

        dict["vector_observation"] = input_vector_obs;
        dict["epsilon"]            = input_eps;

        worker.Execute(dict);
        //worker.Fetch("action_probs").PrintDataPart(24, "action_probs");
        //worker.Fetch("action").PrintDataPart(24, "action:");
        //Debug.Log(worker.Fetch("action").GetType());  //BarracudaToFloatArray
        var out_ = TensorUtils.BarracudaToFloatArray(worker.Fetch("action"));

        int i = 0;

        foreach (var fc in out_)
        {
            FxFz[i] = (float)fc;
            Debug.Log((float)fc);
            i = i + 1;
        }

        AgentAction(FxFz);
        Debug.Log("valueEstimate");
        //UpdateVectorAction(FxFz);
        Debug.Log(GetValueEstimate());
    }