public void CanBroadcast_3_to_2_3() { // http://www.onlamp.com/pub/a/python/2000/09/27/numerically.html?page=2 /* * * a = np.array([[1, 2, 3], [4, 5, 6]]) * b = np.array([[7, 8, 9]]) * a + b * */ var a = NN.Array(new[, ] { { 1, 2, 3 }, { 4, 5, 6 } }); var c = NN.Array(new[] { 7, 8, 9 }); var rAdd = NN.Array(new[, ] { { 8, 10, 12 }, { 11, 13, 15 } }); var rMul = NN.Array(new[, ] { { 7, 16, 27 }, { 28, 40, 54 } }); a.AssertOfShape(2, 3); c.AssertOfShape(3); AssertArray.GenerateTests(a, c, NN.Ones <int>, (a1, c1) => AssertArray.AreEqual(rAdd, a1 + c1)); AssertArray.GenerateTests(a, c, NN.Zeros <int>, (a1, c1) => AssertArray.AreEqual(rMul, a1 * c1)); }
public void CanReshape_6_to_2_3_WithForcedCopy() { var a0 = NN.Range(6); var b = NN.Array(new[, ] { { 0, 1, 2 }, { 3, 4, 5 } }); AssertArray.GenerateTests(a0, a => AssertArray.AreEqual(b, a.Reshape(new[] { 2, 3 }, forceCopy: true))); }
public void CanReshape_6_to_2_3() { var a0 = NN.Range(6); var b = NN.Array(new[, ] { { 0, 1, 2 }, { 3, 4, 5 } }); AssertArray.GenerateTests(a0, a => AssertArray.AreEqual(b, a.Reshape(2, 3))); }
public void CanBroadcastScalarToArray() { // http://www.onlamp.com/pub/a/python/2000/09/27/numerically.html /* * * a = np.array([[1,2],[3, 4]]) * b = 1 * a + b * */ var a = NN.Array(new[, ] { { 1, 2 }, { 3, 4 } }); var b = 1; var r = NN.Array(new[, ] { { 2, 3 }, { 4, 5 } }); AssertArray.GenerateTests(a, NN.Ones <int>, a1 => AssertArray.AreEqual(r, a1 + b)); }
public void TestGenerateMat() { var a = NN.Range<float>(12).Reshape(4, 3); var c = a.Copy(); AssertArray.GenerateTests(a, b => AssertArray.AreAlmostEqual(c, b)); }
public void TestGenerateVec() { var a = NN.Range<float>(5); var c = a.Copy(); AssertArray.GenerateTests(a, b => AssertArray.AreAlmostEqual(c, b)); }