예제 #1
0
        public void ElementwiseMultiplicationDataOnDifferent()
        {
            int[] shape1  = { 2, 3 };
            var   tensor1 = new FloatTensor(shape1, true);

            int[] shape2  = { 2, 3 };
            var   tensor2 = new FloatTensor(shape2, false);

            Assert.That(() => tensor1.MulElementwise(tensor2),
                        Throws.TypeOf <InvalidOperationException>());
        }
예제 #2
0
        public void ElementwiseMultiplicationUnequalShapes()
        {
            float[] data1   = { 1, 2, 3, 4, 5, 6 };
            int[]   shape1  = { 2, 3 };
            var     tensor1 = new FloatTensor(data1, shape1);

            float[] data2   = { 1, 2, 3, 4, 5, 6 };
            int[]   shape2  = { 3, 2 };
            var     tensor2 = new FloatTensor(data2, shape2);

            Assert.That(() => tensor1.MulElementwise(tensor2),
                        Throws.TypeOf <InvalidOperationException>());
        }
예제 #3
0
        public void ElementwiseMultiplication()
        {
            float[] data1   = { float.MinValue, -10, -1.5f, 0, 1.5f, 10, 20, float.MaxValue };
            int[]   shape1  = { 2, 4 };
            var     tensor1 = new FloatTensor(data1, shape1);

            float[] data2   = { float.MinValue, -10, -1.5f, 0, 1.5f, 10, 20, float.MaxValue };
            int[]   shape2  = { 2, 4 };
            var     tensor2 = new FloatTensor(data2, shape2);

            var tensorMult = tensor1.MulElementwise(tensor2);

            for (int i = 0; i < tensorMult.Size; i++)
            {
                float current = tensor1.Data [i] * tensor2.Data [i];
                Assert.AreEqual(tensorMult.Data [i], current);
            }
        }