public TFOutput Sampleb(TFGraph graph)
        {
            int      seed    = Global.Random.Next(0, int.MaxValue);
            TFOutput eps     = graph.Cast(graph.RandomNormal(graph.GetTensorShape(Mu_b), 0, 1, seed), TFDataType.Float);
            TFOutput sigma_b = NNOperations.LogTrans(graph, Phi_b);

            return(graph.Add(graph.Mul(eps, sigma_b), Mu_b));
        }
        public TFOutput Samplez(TFGraph graph, TFOutput act)
        {
            TFOutput mu    = graph.Add(graph.MatMul(act, Mu_W), Mu_b);
            TFOutput sigma = graph.Sqrt(graph.Add(graph.MatMul(graph.Square(act), graph.Square(NNOperations.LogTrans(graph, Phi_W))), graph.Square(NNOperations.LogTrans(graph, Phi_b))));
            int      seed  = Global.Random.Next(0, int.MaxValue);
            TFOutput eps   = graph.Cast(graph.RandomNormal(new TFShape(Global.TFMAXBATCHSIZE, graph.GetShape(mu)[1]), 0, 1, seed), TFDataType.Float);

            eps = graph.Slice(eps, graph.Const(new int[] { 0, 0 }), graph.Shape(mu));
            return(graph.Add(graph.Mul(eps, sigma), mu));
        }