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"); }
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"); }