Esempio n. 1
0
        public void TestPooling()
        {
            var I = new float[, ] {
                { 40, 410, 42, 43, 44 },
                { 45, 460, 47, 48, 49 },
                { 50, 51, 520, 53, 54 },
                { 55, 56, 57, 580, 590 }
            };

            var O1 = new float[, ] {
                { 460, 48 },
                { 56, 580 }
            };

            AssertArray.AreAlmostEqual(O1, NN.DownSample_MaxPooling2d(I, 2, 2));

            var O2 = new float[, ] {
                { 460, 49 },
                { 520, 590 }
            };

            AssertArray.AreAlmostEqual(O2, NN.DownSample_MaxPooling2d(I, 2, 3, ignoreBorder: false));

            var O3 = new float[, ] {
                { 0, 0, 0, 0, 0 },
                { 0, 460, 0, 48, 0 },
                { 0, 0, 0, 0, 0 },
                { 0, 56, 0, 580, 0 }
            };

            AssertArray.AreAlmostEqual(O3, NN.Unpooling(O1, I, 2, 2));

            var O4 = new int[, , ] {
                { { 1, 1 }, { 1, 3 } },
                { { 3, 1 }, { 3, 3 } }
            };

            AssertArray.AreEqual(O4, NN.DownSample_MaxPooling2d_IndexArray(I, 2, 2));
        }