public void TestTensorVar() { var x = Op.Matrix <float>("x"); var f = Op.Function(input: x, output: x); AssertArray.AreEqual(f(NN.Const(3.0f, 2, 2)), NN.Const(3.0f, 2, 2)); AssertArray.AreNotEqual(f(NN.Const(3.0f, 2, 2)), NN.Const(4.0f, 2, 2)); }
public void TestTensorConst() { var x = Op.Const(2.0f, 2, 2); var f = Op.Function(output: x); AssertArray.AreEqual(f(), NN.Const(2.0f, 2, 2)); AssertArray.AreNotEqual(f(), NN.Const(3.0f, 2, 2)); }
public void TestTensorUnary() { var x = Op.Matrix <float>("x"); var f = Op.Function(input: x, output: Op.Abs(x)); AssertArray.AreEqual(f(NN.Const(5.0f, 2, 2)), NN.Const(5.0f, 2, 2)); AssertArray.AreEqual(f(NN.Const(-5.0f, 2, 2)), NN.Const(5.0f, 2, 2)); AssertArray.AreNotEqual(f(NN.Const(6.0f, 2, 2)), NN.Const(5.0f, 2, 2)); AssertArray.AreNotEqual(f(NN.Const(-6.0f, 2, 2)), NN.Const(5.0f, 2, 2)); }
public void AssertAreEqualWorks() { var a = NN.Random.Uniform(-1f, 1f, 4, 3); var b = a.Copy(); var c = a.T; AssertArray.AreEqual(a, b); AssertArray.AreNotEqual(a, c); Assert.IsTrue(a == a.T.T); }
public void TestTensorMulAdd() { var a = Op.Matrix <float>("a"); var b = Op.Matrix <float>("b"); var f = Op.Function(input: (a, b), output: 3 * (a + b)); AssertArray.AreEqual(f(NN.Const(3f, 2, 2), NN.Const(4f, 2, 2)), NN.Const(21f, 2, 2)); AssertArray.AreEqual(f(NN.Const(3f, 2, 2), NN.Const(-4f, 2, 2)), NN.Const(-3f, 2, 2)); AssertArray.AreNotEqual(f(NN.Const(3f, 2, 2), NN.Const(4f, 2, 2)), NN.Const(7f, 2, 2)); AssertArray.AreNotEqual(f(NN.Const(3f, 2, 2), NN.Const(4f, 2, 2)), NN.Const(9f, 2, 2)); }
public void TestTensorAdd() { var x = Op.Matrix <float>("x"); var y = Op.Matrix <float>("y"); var f = Op.Function(input: (x, y), output: x + y); AssertArray.AreEqual(f(NN.Const(3f, 2, 2), NN.Const(4f, 2, 2)), NN.Const(7f, 2, 2)); AssertArray.AreEqual(f(NN.Const(3f, 2, 2), NN.Const(-4f, 2, 2)), NN.Const(-1f, 2, 2)); AssertArray.AreNotEqual(f(NN.Const(3f, 2, 2), NN.Const(4f, 2, 2)), NN.Const(3f, 2, 2)); AssertArray.AreNotEqual(f(NN.Const(3f, 2, 2), NN.Const(-4f, 2, 2)), NN.Const(4f, 2, 2)); }
public void AssertAreEqualWithBroadcastingWorks() { var a = NN.Random.Uniform(-1f, 1f, 5); var b = a.Reshape(1, 5); var c = a.Reshape(5, 1); AssertArray.AreEqual(a, b, allowBroadcasting: true); AssertArray.AreEqual(a, c, allowBroadcasting: true); AssertArray.AreEqual(c, b, allowBroadcasting: true); AssertArray.AreEqual(b, c, allowBroadcasting: true); AssertArray.AreNotEqual(b, c, allowBroadcasting: false); AssertArray.AreNotEqual(a, b, allowBroadcasting: false); AssertArray.AreNotEqual(a, c, allowBroadcasting: false); }