Ejemplo n.º 1
0
        public void BiasBackward()
        {
            var outputGradient = new Double.Volume(
                new[]
            {
                1.0, 2.0,
                3.0, 1.0,
                2.0, 3.0
            },
                new Shape(2, 1, 3, 1));

            var biasGradient = BuilderInstance <double> .Volume.SameAs(new Shape(1, 1, 3, 1));

            outputGradient.BiasGradient(biasGradient);

            Assert.AreEqual(3.0, biasGradient.Get(0, 0, 0, 0));
            Assert.AreEqual(4.0, biasGradient.Get(0, 0, 1, 0));
            Assert.AreEqual(5.0, biasGradient.Get(0, 0, 2, 0));
        }
Ejemplo n.º 2
0
        public void BiasBackwardBatch()
        {
            var outputGradient = new Double.Volume(
                new[]
            {
                1.0, 2.0,
                3.0, 1.0,
                2.0, 3.0,
                1.0, 2.0,
                3.0, 1.0,
                2.0, 3.0
            },
                new Shape(2, 1, 3, 2),
                GpuContext.Default);

            var biasGradient = BuilderInstance <double> .Volume.SameAs(new Shape(1, 1, 3, 1));

            outputGradient.BiasGradient(biasGradient);

            Assert.AreEqual(6.0, biasGradient.Get(0, 0, 0, 0));
            Assert.AreEqual(8.0, biasGradient.Get(0, 0, 1, 0));
            Assert.AreEqual(10.0, biasGradient.Get(0, 0, 2, 0));
        }