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