Ejemplo n.º 1
0
        public void getGradientInput()
        {
            var inData = new MultiMatrix(new int[] { 3, 3 }, new double[] {
                1, 2, 3,
                4, 5, 6,
                7, 8, 9,
            });

            var weights = new double[] {
                1, 2,
                3, 4,
            };
            var gradientNext = new MultiMatrix(new int[] { 2, 2 }, new double[] {
                1, -1,
                2, 3,
            });

            var kernel           = new Kernel(new int[] { 2, 2 }, weights);
            var expectedGradient = new MultiMatrix(new int[] { 3, 3 }, new double[] {
                1, 1, -2,
                5, 8, 2,
                6, 17, 12,
            });

            var gradient = kernel.getGradientInput(inData, gradientNext);

            Assert.IsTrue(expectedGradient.EEquals(gradient));
        }
Ejemplo n.º 2
0
        public void getGradientInput()
        {
            var inData = new MultiMatrix(new int[] { 5, 5 }, new double[] {
                0, 1, 2, 3, 4,
                10, 11, 9, 14, 13,
                20, 24, 25, 26, 20,
                32, 27, 28, 29, 21,
                31, 33, 34, 35, -1,
            });

            var gradientNext = new MultiMatrix(new int[] { 3, 3 }, new double[] {
                1, 1, 1,
                1, 1, 1,
                1, 1, 1,
            });

            var expectedGradient = new MultiMatrix(new int[] { 5, 5 }, new double[] {
                0, 0, 0, 0, 0,
                0, 1, 0, 1, 1,
                0, 0, 0, 0, 0,
                1, 0, 0, 1, 1,
                0, 1, 0, 1, 1,
            });

            var pooler   = new Pooler(new int[] { 2, 2 });
            var gradient = pooler.getGradientInput(inData, gradientNext);

            Assert.IsTrue(expectedGradient.EEquals(gradient));
        }