Exemplo n.º 1
0
        FeedForward(FloatArray x, FloatArray hprev, FloatArray cprev)
        {
            var z    = new FloatArray(JoinArray(hprev.ToArray(), x.ToArray()));
            var f    = Sigmoid((z.T * Wf).SumLine() + Bf);
            var i    = Sigmoid((z.T * Wi).SumLine() + Bi);
            var cbar = Tanh((z.T * Wc).SumLine() + Bc);
            var o    = Sigmoid((z.T * Wo).SumLine() + Bo);

            var c = f * cprev + i * cbar;
            var h = o * Tanh(c);

            return(z, f, i, cbar, c, o, h);
        }
Exemplo n.º 2
0
        public static int GetBestPosition(FloatArray result, bool prob)
        {
            if (prob)
            {
                var p = NumMath.Choice(Enumerable.Range(0, result.Length).ToArray(), 1, result.ToArray()).First();
                return(p);
            }

            var max = 0f;
            var pos = 0;

            for (var i = 0; i < result.Length; i++)
            {
                if (max < result[i])
                {
                    max = result[i];
                    pos = i;
                }
            }

            return(pos);
        }