Exemplo n.º 1
0
        public void ReverseConv_Test_3D_2d()
        {
            var dy = new double[, , ]
            {
                {
                    { 1, 2 },
                    { 3, 4 },
                },
                {
                    { -1, 3 },
                    { 4, 2 },
                },
            };

            var fs = new double[, , ]
            {
                {
                    { 1, 2 },
                    { -1, 3 },
                },
                {
                    { 3, -1 },
                    { -2, 1 },
                },
            };

            var expected = new double[, , ]
            {
                {
                    { 1, 4, 4 },
                    { 2, 11, 14 },
                    { -3, 5, 12 },
                },
                {
                    { 2, 6, 4 },
                    { 12, 10, 11 },
                    { -10, 5, 10 },
                },
                {
                    { -3, 10, -3 },
                    { 14, -5, 1 },
                    { -8, 0, 2 },
                }
            };

            var cl1 = new ConvolutionLayer
            {
                Filters = new List <double[, , ]> {
                    fs
                },
            };

            var actual = cl1.ReverseConvolution(dy, fs);

            Assert.That.AreEqual(expected, actual);
        }