This is an automated email from the ASF dual-hosted git repository. reminisce pushed a commit to branch numpy_1_6_prs in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git
commit 6166778a587097e9a3ecc2d0e0880bba55f282c3 Author: JiangZhaoh <54654391+jiangzh...@users.noreply.github.com> AuthorDate: Sat Oct 19 13:18:10 2019 +0800 Numpy dispatch test (#16437) * vstack * zeros_like * zeros_like * vdot * stack * less * less * less_equal * greater and greater_equal * var * equal and not_equal * print test * try to test again * test without l le g ge e ne * test again * remove l le e ne g ge * remove float16 * final submit --- python/mxnet/numpy_dispatch_protocol.py | 8 ++++ .../python/unittest/test_numpy_interoperability.py | 46 ++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/python/mxnet/numpy_dispatch_protocol.py b/python/mxnet/numpy_dispatch_protocol.py index a241d26..8fc9e2e 100644 --- a/python/mxnet/numpy_dispatch_protocol.py +++ b/python/mxnet/numpy_dispatch_protocol.py @@ -112,6 +112,8 @@ _NUMPY_ARRAY_FUNCTION_LIST = [ 'tile', 'transpose', 'var', + 'vdot', + 'vstack', 'zeros_like', 'meshgrid', 'outer', @@ -162,6 +164,10 @@ def _register_array_function(): # https://docs.scipy.org/doc/numpy/reference/ufuncs.html#available-ufuncs _NUMPY_ARRAY_UFUNC_LIST = [ 'add', + #'equal', + #'not_equal', + #'greater', + #'greater_equal', 'subtract', 'multiply', # Uncomment divide when mxnet.numpy.true_divide is added @@ -173,6 +179,8 @@ _NUMPY_ARRAY_UFUNC_LIST = [ 'rint', 'sign', 'exp', + #'less', + #'less_equal', 'log', 'log2', 'log10', diff --git a/tests/python/unittest/test_numpy_interoperability.py b/tests/python/unittest/test_numpy_interoperability.py index f22d42b..50a1507 100644 --- a/tests/python/unittest/test_numpy_interoperability.py +++ b/tests/python/unittest/test_numpy_interoperability.py @@ -223,6 +223,13 @@ def _prepare_workloads(): OpArgMngr.add_workload('split', array_pool['4x1'], 2) OpArgMngr.add_workload('squeeze', array_pool['4x1']) OpArgMngr.add_workload('stack', [array_pool['4x1']] * 2) + OpArgMngr.add_workload('stack', [array_pool['4x1']] * 2, 1) + OpArgMngr.add_workload('stack', [array_pool['4x1']] * 2, -1) + OpArgMngr.add_workload('stack', [array_pool['4x1']] * 2, -2) + OpArgMngr.add_workload('stack', np.random.normal(size=(2, 4, 3)), 2) + OpArgMngr.add_workload('stack', np.random.normal(size=(2, 4, 3)), -3) + OpArgMngr.add_workload('stack', np.array([[], [], []]), 1) + OpArgMngr.add_workload('stack', np.array([[], [], []])) OpArgMngr.add_workload('std', array_pool['4x1']) OpArgMngr.add_workload('sum', array_pool['4x1']) OpArgMngr.add_workload('swapaxes', array_pool['4x1'], 0, 1) @@ -231,7 +238,24 @@ def _prepare_workloads(): OpArgMngr.add_workload('tile', np.array([[[]]]), (3, 2, 5)) OpArgMngr.add_workload('transpose', array_pool['4x1']) OpArgMngr.add_workload('var', array_pool['4x1']) + OpArgMngr.add_workload('var', np.array([np.float16(1.)])) + OpArgMngr.add_workload('var', np.array([1])) + OpArgMngr.add_workload('var', np.array([1.])) + OpArgMngr.add_workload('var', np.array([[1, 2, 3], [4, 5, 6]])) + OpArgMngr.add_workload('var', np.array([[1, 2, 3], [4, 5, 6]]), 0) + OpArgMngr.add_workload('var', np.array([[1, 2, 3], [4, 5, 6]]), 1) + OpArgMngr.add_workload('var', np.array([np.nan])) + OpArgMngr.add_workload('var', np.array([1, -1, 1, -1])) + OpArgMngr.add_workload('var', np.array([1,2,3,4], dtype='f8')) + OpArgMngr.add_workload('vdot', np.random.normal(size=(2, 4)), np.random.normal(size=(4, 2))) + OpArgMngr.add_workload('vdot', np.random.normal(size=(2, 4)).astype(np.float64), np.random.normal(size=(2, 4)).astype(np.float64)) + OpArgMngr.add_workload('vstack', (array_pool['4x1'], np.random.uniform(size=(5, 1)))) + OpArgMngr.add_workload('vstack', array_pool['4x1']) + OpArgMngr.add_workload('vstack', array_pool['1x1x0']) OpArgMngr.add_workload('zeros_like', array_pool['4x1']) + OpArgMngr.add_workload('zeros_like', np.random.uniform(size=(3, 3)).astype(np.float64)) + OpArgMngr.add_workload('zeros_like', np.random.uniform(size=(3, 3)).astype(np.float32)) + OpArgMngr.add_workload('zeros_like', np.random.randint(2, size = (3, 3))) OpArgMngr.add_workload('outer', np.ones((5)), np.ones((2))) OpArgMngr.add_workload('meshgrid', np.array([1, 2, 3])) OpArgMngr.add_workload('meshgrid', np.array([1, 2, 3]), np.array([4, 5, 6, 7])) @@ -243,6 +267,20 @@ def _prepare_workloads(): OpArgMngr.add_workload('add', array_pool['4x1'], 2) OpArgMngr.add_workload('add', 2, array_pool['4x1']) OpArgMngr.add_workload('add', array_pool['4x1'], array_pool['1x1x0']) + """ + OpArgMngr.add_workload('equal', np.array([0, 1, 2, 4, 2], dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16)) + OpArgMngr.add_workload('equal', np.array([np.nan]), np.array([np.nan])) + OpArgMngr.add_workload('equal', array_pool['4x1'], array_pool['1x2']) + OpArgMngr.add_workload('not_equal', np.array([0, 1, 2, 4, 2], dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16)) + OpArgMngr.add_workload('not_equal', np.array([np.nan]), np.array([np.nan])) + OpArgMngr.add_workload('not_equal', array_pool['4x1'], array_pool['1x2']) + OpArgMngr.add_workload('greater', np.array([0, 1, 2, 4, 2], dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16)) + OpArgMngr.add_workload('greater', array_pool['4x1'], array_pool['1x2']) + OpArgMngr.add_workload('greater', np.array([np.nan]), np.array([np.nan])) + OpArgMngr.add_workload('greater_equal', np.array([0, 1, 2, 4, 2], dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16)) + OpArgMngr.add_workload('greater_equal', array_pool['4x1'], array_pool['1x2']) + OpArgMngr.add_workload('greater_equal', np.array([np.nan]), np.array([np.nan])) + """ OpArgMngr.add_workload('subtract', array_pool['4x1'], array_pool['1x2']) OpArgMngr.add_workload('subtract', array_pool['4x1'], 2) OpArgMngr.add_workload('subtract', 2, array_pool['4x1']) @@ -337,6 +375,14 @@ def _prepare_workloads(): # OpArgMngr.add_workload('sign', np.array(_np.array([_np.nan]))) # failed OpArgMngr.add_workload('exp', array_pool['4x1']) + """ + OpArgMngr.add_workload('less', np.array([0, 1, 2, 4, 2], dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16)) + OpArgMngr.add_workload('less', array_pool['4x1'], array_pool['1x2']) + OpArgMngr.add_workload('less', np.array([np.nan]), np.array([np.nan])) + OpArgMngr.add_workload('less_equal', np.array([0, 1, 2, 4, 2], dtype=np.float16), np.array([-2, 5, 1, 4, 3], dtype=np.float16)) + OpArgMngr.add_workload('less_equal', array_pool['4x1'], array_pool['1x2']) + OpArgMngr.add_workload('less_equal', np.array([np.nan]), np.array([np.nan])) + """ OpArgMngr.add_workload('log', array_pool['4x1']) OpArgMngr.add_workload('log2', array_pool['4x1']) OpArgMngr.add_workload('log2', np.array(2.**65))