public void FunctionTest() { Linear dense = new Linear(1); SparseLinear target = new SparseLinear(1); double[] sx = { 1, -0.555556, 2, +0.250000, 3, -0.864407, 4, -0.916667 }; double[] sy = { 1, -0.666667, 2, -0.166667, 3, -0.864407, 4, -0.916667 }; double[] sz = { 1, -0.944444, 3, -0.898305, 4, -0.916667 }; double[] dx = { -0.555556, +0.250000, -0.864407, -0.916667 }; double[] dy = { -0.666667, -0.166667, -0.864407, -0.916667 }; double[] dz = { -0.944444, +0.000000, -0.898305, -0.916667 }; double expected, actual; expected = dense.Function(dx, dy); actual = target.Function(sx, sy); Assert.AreEqual(expected, actual, 1e-10); expected = dense.Function(dx, dz); actual = target.Function(sx, sz); Assert.AreEqual(expected, actual, 1e-10); expected = dense.Function(dy, dz); actual = target.Function(sy, sz); Assert.AreEqual(expected, actual, 1e-10); }
public void FunctionTest2() { double constant = 0.1; Linear target = new Linear(constant); double[] x = { 2.0, 3.1, 4.0 }; double[] y = { 2.0, 3.1, 4.0 }; double expected = Matrix.InnerProduct(x, y) + constant; double actual; actual = target.Function(x, y); Assert.AreEqual(expected, actual); actual = target.Function(x, x); Assert.AreEqual(expected, actual); actual = target.Function(y, y); Assert.AreEqual(expected, actual); }
public double Output() { double result = 0; for (int i = 0; i < Weights.Length; i++) { result += Weights[i] * Inputs[i]; } if (bias == MLP.Bias.biasOn) { result += Bias; } if (ActivationFunction == 1) { result = Sigm.Function(result); } if (ActivationFunction == 2) { result = Linear.Function(result); } return(result); }
public void FunctionTest() { IKernel linear = new Linear(1); double[] x = { 1, 1 }; double[] y = { 1, 1 }; double actual = linear.Function(x, y); double expected = 3; Assert.AreEqual(expected, actual); linear = new Linear(11.5); x = new double[] { 0.2, 5 }; y = new double[] { 3, 0.7 }; actual = linear.Function(x, y); expected = 15.6; Assert.AreEqual(expected, actual); }
public static void TestGenericArrayInterface() { var x = new Linear(); var r = x.Function(null); Assert.AreEqual(123, r); var x1 = new Linear1(); var r1 = x1.Function(new[] { 1.1 }); Assert.AreEqual(1.1, r1); var x2 = new Linear2(); var r2 = x2.Function(new double[, ] { { 1.1, 2.2, 3.3 }, { 4.1, 5.1, 6.1 } }); Assert.AreEqual(5.1, r2); var x3 = new Linear3(); var r3 = x3.Function(new List <double>(new[] { 1.1, 2.1 })); Assert.AreEqual(2.1, r3); }