def testMultipleOutputExecute(self): data = np.random.random((5, 9)) # test multiple outputs arr1 = mt.tensor(data.copy(), chunk_size=3) result = mt.modf(arr1).execute() expected = np.modf(data) np.testing.assert_array_equal(result[0], expected[0]) np.testing.assert_array_equal(result[1], expected[1]) # test 1 output arr2 = mt.tensor(data.copy(), chunk_size=3) result = ((arr2 + 1) * 2).execute() expected = (data + 1) * 2 np.testing.assert_array_equal(result, expected) # test multiple outputs, but only execute 1 arr3 = mt.tensor(data.copy(), chunk_size=3) arrs = mt.split(arr3, 3, axis=1) result = arrs[0].execute() expected = np.split(data, 3, axis=1)[0] np.testing.assert_array_equal(result, expected) # test multiple outputs, but only execute 1 data = np.random.randint(0, 10, (5, 5)) arr3 = mt.tensor(data) arrs = mt.linalg.qr(arr3) result = arrs[0].execute() expected = np.linalg.qr(data)[0] np.testing.assert_array_almost_equal(result, expected)
def testSessionExecute(self): a = mt.random.rand(10, 20) res = a.sum().execute() self.assertTrue(np.isscalar(res)) self.assertLess(res, 200) data = np.random.random((5, 9)) # test multiple outputs arr1 = mt.tensor(data.copy(), chunks=3) result = mt.modf(arr1).execute() expected = np.modf(data) np.testing.assert_array_equal(result[0], expected[0]) np.testing.assert_array_equal(result[1], expected[1]) # test 1 output arr2 = mt.tensor(data.copy(), chunks=3) result = ((arr2 + 1) * 2).execute() expected = (data + 1) * 2 np.testing.assert_array_equal(result, expected) # test multiple outputs, but only execute 1 arr3 = mt.tensor(data.copy(), chunks=3) arrs = mt.split(arr3, 3, axis=1) result = arrs[0].execute() expected = np.split(data, 3, axis=1)[0] np.testing.assert_array_equal(result, expected)
def test_multiple_output_execute(setup): data = np.random.random((5, 9)) # test multiple outputs arr1 = mt.tensor(data.copy(), chunk_size=3) result = mt.modf(arr1).execute().fetch() expected = np.modf(data) np.testing.assert_array_equal(result[0], expected[0]) np.testing.assert_array_equal(result[1], expected[1]) # test 1 output arr2 = mt.tensor(data.copy(), chunk_size=3) result = ((arr2 + 1) * 2).to_numpy() expected = (data + 1) * 2 np.testing.assert_array_equal(result, expected) # test multiple outputs, but only execute 1 arr3 = mt.tensor(data.copy(), chunk_size=3) arrs = mt.split(arr3, 3, axis=1) result = arrs[0].to_numpy() expected = np.split(data, 3, axis=1)[0] np.testing.assert_array_equal(result, expected) # test multiple outputs, but only execute 1 data = np.random.randint(0, 10, (5, 5)) arr3 = (mt.tensor(data) + 1) * 2 arrs = mt.linalg.qr(arr3) result = (arrs[0] + 1).to_numpy() expected = np.linalg.qr((data + 1) * 2)[0] + 1 np.testing.assert_array_almost_equal(result, expected) result = (arrs[0] + 2).to_numpy() expected = np.linalg.qr((data + 1) * 2)[0] + 2 np.testing.assert_array_almost_equal(result, expected) s = mt.shape(0) result = s.execute().fetch() expected = np.shape(0) assert result == expected
def testMultipleOutputExecute(self): with option_context({'eager_mode': True}): data = np.random.random((5, 9)) arr1 = mt.tensor(data.copy(), chunk_size=3) result = mt.modf(arr1) expected = np.modf(data) np.testing.assert_array_equal(result[0].fetch(), expected[0]) np.testing.assert_array_equal(result[1].fetch(), expected[1]) arr3 = mt.tensor(data.copy(), chunk_size=3) result1, result2, result3 = mt.split(arr3, 3, axis=1) expected = np.split(data, 3, axis=1) np.testing.assert_array_equal(result1.fetch(), expected[0]) np.testing.assert_array_equal(result2.fetch(), expected[1]) np.testing.assert_array_equal(result3.fetch(), expected[2])
def testSessionExecute(self): a = mt.random.rand(10, 20) res = a.sum().execute() self.assertTrue(np.isscalar(res)) self.assertLess(res, 200) data = np.random.random((5, 9)) # test multiple outputs arr1 = mt.tensor(data.copy(), chunk_size=3) result = mt.modf(arr1).execute() expected = np.modf(data) np.testing.assert_array_equal(result[0], expected[0]) np.testing.assert_array_equal(result[1], expected[1]) # test 1 output arr2 = mt.tensor(data.copy(), chunk_size=3) result = ((arr2 + 1) * 2).execute() expected = (data + 1) * 2 np.testing.assert_array_equal(result, expected) # test multiple outputs, but only execute 1 arr3 = mt.tensor(data.copy(), chunk_size=3) arrs = mt.split(arr3, 3, axis=1) result = arrs[0].execute() expected = np.split(data, 3, axis=1)[0] np.testing.assert_array_equal(result, expected) # test run the same tensor arr4 = mt.tensor(data.copy(), chunk_size=3) + 1 result1 = arr4.execute() expected = data + 1 np.testing.assert_array_equal(result1, expected) result2 = arr4.execute() np.testing.assert_array_equal(result1, result2) # test run the same tensor with single chunk arr4 = mt.tensor(data.copy()) result1 = arr4.execute() expected = data np.testing.assert_array_equal(result1, expected) result2 = arr4.execute() np.testing.assert_array_equal(result1, result2) # test run same key tensor arr5 = mt.ones((10, 10), chunk_size=3) result1 = arr5.execute() del arr5 arr6 = mt.ones((10, 10), chunk_size=3) result2 = arr6.execute() np.testing.assert_array_equal(result1, result2)