コード例 #1
0
        public override Vol forward(Vol V, bool is_training)
        {
            this.in_act = V;
            var V2 = V.cloneAndZero();
            var N  = V.w.Length;

            for (var i = 0; i < N; i++)
            {
                V2.w[i] = Math.Tanh(V.w[i]);
            }
            this.out_act = V2;
            return(this.out_act);
        }
コード例 #2
0
        public override Vol forward(Vol V, bool is_training)
        {
            this.in_act = V;
            var V2  = V.cloneAndZero();
            var N   = V.w.Length;
            var V2w = V2.w;
            var Vw  = V.w;

            for (var i = 0; i < N; i++)
            {
                V2w[i] = 1.0 / (1.0 + Math.Exp(-Vw[i]));
            }
            this.out_act = V2;
            return(this.out_act);
        }
コード例 #3
0
        public override Vol forward(Vol V, bool is_training)
        {
            this.in_act = V;

            var A = V.cloneAndZero();

            this.S_cache_ = V.cloneAndZero();
            var n2 = Math.Floor((double)this.n / 2);

            for (var x = 0; x < V.sx; x++)
            {
                for (var y = 0; y < V.sy; y++)
                {
                    for (var i = 0; i < V.depth; i++)
                    {
                        var ai = V.get(x, y, i);

                        // normalize in a window of size n
                        var den = 0.0;
                        for (var j = Math.Max(0, i - n2); j <= Math.Min(i + n2, V.depth - 1); j++)
                        {
                            var aa = V.get(x, y, (int)j);
                            den += aa * aa;
                        }
                        den *= this.alpha / this.n;
                        den += this.k;
                        this.S_cache_.set(x, y, i, den); // will be useful for backprop
                        den = Math.Pow(den, this.beta);
                        A.set(x, y, i, ai / den);
                    }
                }
            }

            this.out_act = A;
            return(this.out_act); // dummy identity function for now
        }