예제 #1
0
    def testBinExecution(self):
        from mars.tensor.expressions.arithmetic import BIN_UFUNC, mod, fmod, \
            bitand, bitor, bitxor, lshift, rshift, ldexp

        _sp_bin_ufunc = [mod, fmod, bitand, bitor, bitxor, lshift, rshift]
        _new_bin_ufunc = list(BIN_UFUNC - set(_sp_bin_ufunc) - set([ldexp]))
        executor_numexpr = Executor()

        for i, j in itertools.permutations(range(len(_new_bin_ufunc)), 2):
            raw = np.random.random((9, 9, 9))
            arr1 = tensor(raw, chunk_size=5)

            func1 = _new_bin_ufunc[i]
            func2 = _new_bin_ufunc[j]
            arr2 = func1(1, func2(2, arr1))
            res = executor_numexpr.execute_tensor(arr2, concat=True)
            res_cmp = self.executor.execute_tensor(arr2, concat=True)
            self.assertTrue(np.allclose(res[0], res_cmp[0]))

        for i, j in itertools.permutations(range(len(_sp_bin_ufunc)), 2):
            raw = np.random.randint(1, 100, size=(10, 10, 10))
            arr1 = tensor(raw, chunk_size=3)

            func1 = _sp_bin_ufunc[i]
            func2 = _sp_bin_ufunc[j]
            arr2 = func1(10, func2(arr1, 5))
            res = executor_numexpr.execute_tensor(arr2, concat=True)
            res_cmp = self.executor.execute_tensor(arr2, concat=True)
            self.assertTrue(np.allclose(res[0], res_cmp[0]))
예제 #2
0
    def testUnaryExecution(self):
        from mars.tensor.expressions.arithmetic import UNARY_UFUNC, arccosh, invert, sin, conj

        _sp_unary_ufunc = set([arccosh, invert, conj])
        _new_unary_ufunc = list(UNARY_UFUNC - _sp_unary_ufunc)
        executor_numexpr = Executor()

        def _normalize_by_sin(func1, func2, arr):
            return func1(abs(sin((func2(arr)))))

        for i, j in itertools.permutations(range(len(_new_unary_ufunc)), 2):
            raw = np.random.random((8, 8, 8))
            arr1 = tensor(raw, chunk_size=4)

            func1 = _new_unary_ufunc[i]
            func2 = _new_unary_ufunc[j]
            arr2 = _normalize_by_sin(func1, func2, arr1)
            res = executor_numexpr.execute_tensor(arr2, concat=True)
            res_cmp = self.executor.execute_tensor(arr2, concat=True)
            np.testing.assert_allclose(res[0], res_cmp[0])

        raw = np.random.randint(100, size=(8, 8, 8))
        arr1 = tensor(raw, chunk_size=4)
        arr2 = arccosh(1 + abs(invert(arr1)))
        res = executor_numexpr.execute_tensor(arr2, concat=True)
        res_cmp = self.executor.execute_tensor(arr2, concat=True)
        self.assertTrue(np.allclose(res[0], res_cmp[0]))
예제 #3
0
    def testBaseExecution(self):
        executor_numpy = Executor('numpy')

        raw1 = np.random.randint(10, size=(10, 10, 10))
        raw2 = np.random.randint(10, size=(10, 10, 10))
        arr1 = tensor(raw1, chunk_size=3)
        arr2 = tensor(raw2, chunk_size=3)

        arr3 = arr1 + arr2 + 10
        arr4 = 10 + arr1 + arr2
        res3 = executor_numpy.execute_tensor(arr3, concat=True)
        res3_cmp = self.executor.execute_tensor(arr4, concat=True)
        self.assertTrue(np.array_equal(res3[0], res3_cmp[0]))

        res5 = executor_numpy.execute_tensor((arr1 + arr1), concat=True)
        res5_cmp = self.executor.execute_tensor((arr1 + arr1), concat=True)
        self.assertTrue(np.array_equal(res5[0], res5_cmp[0]))
예제 #4
0
 def setUp(self):
     self.executor = Executor('numpy')
예제 #5
0
 def setUp(self):
     self.executor = Executor('numpy')
     local_session = LocalSession()
     local_session._executor = self.executor
     self.session = Session()
     self.session._sess = local_session
예제 #6
0
 def setUp(self):
     self.executor = Executor()
예제 #7
0
 def setUp(self):
     self.executor = Executor('cupy')
예제 #8
0
 def setUp(self):
     super(Test, self).setUp()
     self.executor = Executor()
예제 #9
0
 def setUp(self):
     self.executor = Executor('numpy')
     self.old_chunk = options.tensor.chunk_size
     options.tensor.chunk_size = 10
예제 #10
0
 def setUp(self):
     self.executor = Executor('numpy', storage=MockStorage(), prefetch=True)