Пример #1
0
        public void QuadraticCostPrimeTest()
        {
            var actual = new Matrix(4, 1);

            actual.InRandomize();
            var expected = new Matrix(4, 1);

            expected.InRandomize();

            var n  = 0;
            var da = actual.Duplicate();

            for (var i = 0; i < actual.Rows; i++)
            {
                for (var j = 0; j < actual.Columns; j++)
                {
                    n++;
                    da[i, j] = Math.Pow(expected[i, j] - actual[i, j], 2);
                }
            }

            var gradMatrix = da * (1.0 / n);


            var cost             = new QuadraticCostKernel();
            var calculatedMatrix = cost.Backward(actual, expected);

            Assert.IsTrue(gradMatrix == calculatedMatrix, "Quadratic Cost Derivative successful");
        }
Пример #2
0
        public void QuadraticCostTest()
        {
            var error  = 0.0;
            var actual = new Matrix(4, 1);

            actual.InRandomize();
            var expected = new Matrix(4, 1);

            expected.InRandomize();

            for (var i = 0; i < actual.Rows; i++)
            {
                for (var j = 0; j < actual.Columns; j++)
                {
                    error += Math.Pow(actual[i, j] - expected[i, j], 2);
                }
            }

            error /= 2;

            var cost            = new QuadraticCostKernel();
            var calculatedError = cost.Forward(actual, expected);

            Assert.IsTrue(Math.Abs(error - calculatedError) < 0.01f, "Quadratic Cost successful");
        }