def test_triu_tril(): a_data = np.arange(12).reshape(4, 3) a = tensor(a_data, chunk_size=2) t = triu(a) assert t.op.gpu is False t = tile(t) assert len(t.chunks) == 4 assert isinstance(t.chunks[0].op, TensorTriu) assert isinstance(t.chunks[1].op, TensorTriu) assert isinstance(t.chunks[2].op, TensorZeros) assert isinstance(t.chunks[3].op, TensorTriu) t = triu(a, k=1) t = tile(t) assert len(t.chunks) == 4 assert isinstance(t.chunks[0].op, TensorTriu) assert isinstance(t.chunks[1].op, TensorTriu) assert isinstance(t.chunks[2].op, TensorZeros) assert isinstance(t.chunks[3].op, TensorZeros) t = triu(a, k=2) t = tile(t) assert len(t.chunks) == 4 assert isinstance(t.chunks[0].op, TensorZeros) assert isinstance(t.chunks[1].op, TensorTriu) assert isinstance(t.chunks[2].op, TensorZeros) assert isinstance(t.chunks[3].op, TensorZeros) t = triu(a, k=-1) t = tile(t) assert len(t.chunks) == 4 assert isinstance(t.chunks[0].op, TensorTriu) assert isinstance(t.chunks[1].op, TensorTriu) assert isinstance(t.chunks[2].op, TensorTriu) assert isinstance(t.chunks[3].op, TensorTriu) t = tril(a) assert t.op.gpu is False t = tile(t) assert len(t.chunks) == 4 assert isinstance(t.chunks[0].op, TensorTril) assert isinstance(t.chunks[1].op, TensorZeros) assert isinstance(t.chunks[2].op, TensorTril) assert isinstance(t.chunks[3].op, TensorTril) t = tril(a, k=1) t = tile(t) assert len(t.chunks) == 4 assert isinstance(t.chunks[0].op, TensorTril) assert isinstance(t.chunks[1].op, TensorTril) assert isinstance(t.chunks[2].op, TensorTril) assert isinstance(t.chunks[3].op, TensorTril) t = tril(a, k=-1) t = tile(t) assert len(t.chunks) == 4 assert isinstance(t.chunks[0].op, TensorTril) assert isinstance(t.chunks[1].op, TensorZeros) assert isinstance(t.chunks[2].op, TensorTril) assert isinstance(t.chunks[3].op, TensorTril) t = tril(a, k=-2) t = tile(t) assert len(t.chunks) == 4 assert isinstance(t.chunks[0].op, TensorZeros) assert isinstance(t.chunks[1].op, TensorZeros) assert isinstance(t.chunks[2].op, TensorTril) assert isinstance(t.chunks[3].op, TensorZeros)
def testTriuTril(self): a_data = np.arange(12).reshape(4, 3) a = tensor(a_data, chunk_size=2) t = triu(a) self.assertFalse(t.op.gpu) t = t.tiles() self.assertEqual(len(t.chunks), 4) self.assertIsInstance(t.chunks[0].op, TensorTriu) self.assertIsInstance(t.chunks[1].op, TensorTriu) self.assertIsInstance(t.chunks[2].op, TensorZeros) self.assertIsInstance(t.chunks[3].op, TensorTriu) t = triu(a, k=1) t = t.tiles() self.assertEqual(len(t.chunks), 4) self.assertIsInstance(t.chunks[0].op, TensorTriu) self.assertIsInstance(t.chunks[1].op, TensorTriu) self.assertIsInstance(t.chunks[2].op, TensorZeros) self.assertIsInstance(t.chunks[3].op, TensorZeros) t = triu(a, k=2) t = t.tiles() self.assertEqual(len(t.chunks), 4) self.assertIsInstance(t.chunks[0].op, TensorZeros) self.assertIsInstance(t.chunks[1].op, TensorTriu) self.assertIsInstance(t.chunks[2].op, TensorZeros) self.assertIsInstance(t.chunks[3].op, TensorZeros) t = triu(a, k=-1) t = t.tiles() self.assertEqual(len(t.chunks), 4) self.assertIsInstance(t.chunks[0].op, TensorTriu) self.assertIsInstance(t.chunks[1].op, TensorTriu) self.assertIsInstance(t.chunks[2].op, TensorTriu) self.assertIsInstance(t.chunks[3].op, TensorTriu) t = tril(a) self.assertFalse(t.op.gpu) t = t.tiles() self.assertEqual(len(t.chunks), 4) self.assertIsInstance(t.chunks[0].op, TensorTril) self.assertIsInstance(t.chunks[1].op, TensorZeros) self.assertIsInstance(t.chunks[2].op, TensorTril) self.assertIsInstance(t.chunks[3].op, TensorTril) t = tril(a, k=1) t = t.tiles() self.assertEqual(len(t.chunks), 4) self.assertIsInstance(t.chunks[0].op, TensorTril) self.assertIsInstance(t.chunks[1].op, TensorTril) self.assertIsInstance(t.chunks[2].op, TensorTril) self.assertIsInstance(t.chunks[3].op, TensorTril) t = tril(a, k=-1) t = t.tiles() self.assertEqual(len(t.chunks), 4) self.assertIsInstance(t.chunks[0].op, TensorTril) self.assertIsInstance(t.chunks[1].op, TensorZeros) self.assertIsInstance(t.chunks[2].op, TensorTril) self.assertIsInstance(t.chunks[3].op, TensorTril) t = tril(a, k=-2) t = t.tiles() self.assertEqual(len(t.chunks), 4) self.assertIsInstance(t.chunks[0].op, TensorZeros) self.assertIsInstance(t.chunks[1].op, TensorZeros) self.assertIsInstance(t.chunks[2].op, TensorTril) self.assertIsInstance(t.chunks[3].op, TensorZeros)
def test_solve_triangular(setup): from mars.tensor import tril, triu rs = np.random.RandomState(0) data1 = rs.randint(1, 10, (20, 20)) data2 = rs.randint(1, 10, (20, )) A = tensor(data1, chunk_size=20) b = tensor(data2, chunk_size=20) x = solve_triangular(A, b) t = triu(A).dot(x) res = t.execute().fetch() np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = t.execute().fetch() np.testing.assert_allclose(res, data2) A = tensor(data1, chunk_size=10) b = tensor(data2, chunk_size=10) x = solve_triangular(A, b) t = triu(A).dot(x) res = t.execute().fetch() np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = t.execute().fetch() np.testing.assert_allclose(res, data2) data1 = rs.randint(1, 10, (10, 10)) data2 = rs.randint(1, 10, (10, 5)) A = tensor(data1, chunk_size=10) b = tensor(data2, chunk_size=10) x = solve_triangular(A, b) t = triu(A).dot(x) res = t.execute().fetch() np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = t.execute().fetch() np.testing.assert_allclose(res, data2) # test sparse data1 = sps.csr_matrix(np.triu(rs.randint(1, 10, (10, 10)))) data2 = rs.random((10, )) A = tensor(data1, chunk_size=5) b = tensor(data2, chunk_size=5) x = solve_triangular(A, b) result_x = x.execute().fetch() result_b = data1.dot(result_x) assert isinstance(result_x, SparseNDArray) np.testing.assert_allclose(result_b, data2) data1 = sps.csr_matrix(np.triu(rs.randint(1, 10, (10, 10)))) data2 = rs.random((10, 2)) A = tensor(data1, chunk_size=5) b = tensor(data2, chunk_size=5) x = solve_triangular(A, b) result_x = x.execute().fetch() result_b = data1.dot(result_x) assert isinstance(result_x, SparseNDArray) np.testing.assert_allclose(result_b, data2)
def testSolveTriangular(self): from mars.tensor import tril, triu np.random.seed(1) data1 = np.random.randint(1, 10, (20, 20)) data2 = np.random.randint(1, 10, (20, )) A = tensor(data1, chunk_size=20) b = tensor(data2, chunk_size=20) x = solve_triangular(A, b) t = triu(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) A = tensor(data1, chunk_size=10) b = tensor(data2, chunk_size=10) x = solve_triangular(A, b) t = triu(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) data1 = np.random.randint(1, 10, (10, 10)) data2 = np.random.randint(1, 10, (10, 5)) A = tensor(data1, chunk_size=10) b = tensor(data2, chunk_size=10) x = solve_triangular(A, b) t = triu(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) A = tensor(data1, chunk_size=3) b = tensor(data2, chunk_size=3) x = solve_triangular(A, b) t = triu(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) # test sparse data1 = sps.csr_matrix(np.triu(np.random.randint(1, 10, (10, 10)))) data2 = np.random.random((10, )) A = tensor(data1, chunk_size=5) b = tensor(data2, chunk_size=5) x = solve_triangular(A, b) result_x = self.executor.execute_tensor(x, concat=True)[0] result_b = data1.dot(result_x) self.assertIsInstance(result_x, SparseNDArray) np.testing.assert_allclose(result_b, data2) data1 = sps.csr_matrix(np.triu(np.random.randint(1, 10, (10, 10)))) data2 = np.random.random((10, 2)) A = tensor(data1, chunk_size=5) b = tensor(data2, chunk_size=5) x = solve_triangular(A, b) result_x = self.executor.execute_tensor(x, concat=True)[0] result_b = data1.dot(result_x) self.assertIsInstance(result_x, SparseNDArray) np.testing.assert_allclose(result_b, data2)
def testSolveTriangular(self): from mars.tensor import tril, triu np.random.seed(1) data1 = np.random.randint(1, 10, (20, 20)) data2 = np.random.randint(1, 10, (20, )) A = tensor(data1, chunk_size=20) b = tensor(data2, chunk_size=20) x = solve_triangular(A, b) t = triu(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) A = tensor(data1, chunk_size=10) b = tensor(data2, chunk_size=10) x = solve_triangular(A, b) t = triu(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) data1 = np.random.randint(1, 10, (10, 10)) data2 = np.random.randint(1, 10, (10, 5)) A = tensor(data1, chunk_size=10) b = tensor(data2, chunk_size=10) x = solve_triangular(A, b) t = triu(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) A = tensor(data1, chunk_size=3) b = tensor(data2, chunk_size=3) x = solve_triangular(A, b) t = triu(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2) x = solve_triangular(A, b, lower=True) t = tril(A).dot(x) res = self.executor.execute_tensor(t, concat=True)[0] np.testing.assert_allclose(res, data2)