コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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);
        }