|
|
|
@@ -1,4 +1,4 @@ |
|
|
|
# Copyright 2020 Huawei Technologies Co., Ltd
|
|
|
|
# Copyright 2020-2021 Huawei Technologies Co., Ltd
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
@@ -22,71 +22,66 @@ from mindspore import Tensor |
|
|
|
from mindspore.common.api import ms_function
|
|
|
|
from mindspore.ops import operations as P
|
|
|
|
|
|
|
|
x0 = np.random.rand(2, 3, 4, 4).astype(np.float32)
|
|
|
|
axis0 = 3
|
|
|
|
def cum_sum(nptype):
|
|
|
|
context.set_context(device_target='GPU')
|
|
|
|
x0 = np.random.rand(2, 3, 4, 4).astype(nptype)
|
|
|
|
axis0 = 3
|
|
|
|
|
|
|
|
x1 = np.random.rand(2, 3, 4, 4).astype(np.float32)
|
|
|
|
axis1 = 3
|
|
|
|
x1 = np.random.rand(2, 3, 4, 4).astype(nptype)
|
|
|
|
axis1 = 3
|
|
|
|
|
|
|
|
x2 = np.random.rand(2, 3, 1, 4).astype(np.float32)
|
|
|
|
axis2 = 2
|
|
|
|
x2 = np.random.rand(2, 3, 1, 4).astype(nptype)
|
|
|
|
axis2 = 2
|
|
|
|
|
|
|
|
x3 = np.random.rand(2, 3, 1, 4).astype(np.float32)
|
|
|
|
axis3 = 2
|
|
|
|
x3 = np.random.rand(2, 3, 1, 4).astype(nptype)
|
|
|
|
axis3 = 2
|
|
|
|
|
|
|
|
x4 = np.random.rand(2, 3, 4, 4).astype(np.float32)
|
|
|
|
axis4 = 1
|
|
|
|
x4 = np.random.rand(2, 3, 4, 4).astype(nptype)
|
|
|
|
axis4 = 1
|
|
|
|
|
|
|
|
x5 = np.random.rand(2, 3).astype(np.float32)
|
|
|
|
axis5 = 1
|
|
|
|
x5 = np.random.rand(2, 3).astype(nptype)
|
|
|
|
axis5 = 1
|
|
|
|
|
|
|
|
x6 = np.random.rand(1, 1, 1, 1).astype(np.float32)
|
|
|
|
axis6 = 0
|
|
|
|
x6 = np.random.rand(1, 1, 1, 1).astype(nptype)
|
|
|
|
axis6 = 0
|
|
|
|
|
|
|
|
context.set_context(device_target='GPU')
|
|
|
|
class CumSum(nn.Cell):
|
|
|
|
def __init__(self, nptype):
|
|
|
|
super(CumSum, self).__init__()
|
|
|
|
|
|
|
|
self.x0 = Tensor(x0)
|
|
|
|
self.axis0 = axis0
|
|
|
|
|
|
|
|
class CumSum(nn.Cell):
|
|
|
|
def __init__(self):
|
|
|
|
super(CumSum, self).__init__()
|
|
|
|
self.x1 = Tensor(x1)
|
|
|
|
self.axis1 = axis1
|
|
|
|
|
|
|
|
self.x0 = Tensor(x0)
|
|
|
|
self.axis0 = axis0
|
|
|
|
self.x2 = Tensor(x2)
|
|
|
|
self.axis2 = axis2
|
|
|
|
|
|
|
|
self.x1 = Tensor(x1)
|
|
|
|
self.axis1 = axis1
|
|
|
|
self.x3 = Tensor(x3)
|
|
|
|
self.axis3 = axis3
|
|
|
|
|
|
|
|
self.x2 = Tensor(x2)
|
|
|
|
self.axis2 = axis2
|
|
|
|
self.x4 = Tensor(x4)
|
|
|
|
self.axis4 = axis4
|
|
|
|
|
|
|
|
self.x3 = Tensor(x3)
|
|
|
|
self.axis3 = axis3
|
|
|
|
self.x5 = Tensor(x5)
|
|
|
|
self.axis5 = axis5
|
|
|
|
|
|
|
|
self.x4 = Tensor(x4)
|
|
|
|
self.axis4 = axis4
|
|
|
|
self.x6 = Tensor(x6)
|
|
|
|
self.axis6 = axis6
|
|
|
|
|
|
|
|
self.x5 = Tensor(x5)
|
|
|
|
self.axis5 = axis5
|
|
|
|
@ms_function
|
|
|
|
def construct(self):
|
|
|
|
return (P.CumSum()(self.x0, self.axis0),
|
|
|
|
P.CumSum()(self.x1, self.axis1),
|
|
|
|
P.CumSum()(self.x2, self.axis2),
|
|
|
|
P.CumSum()(self.x3, self.axis3),
|
|
|
|
P.CumSum()(self.x4, self.axis4),
|
|
|
|
P.CumSum()(self.x5, self.axis5),
|
|
|
|
P.CumSum()(self.x6, self.axis6))
|
|
|
|
|
|
|
|
self.x6 = Tensor(x6)
|
|
|
|
self.axis6 = axis6
|
|
|
|
|
|
|
|
@ms_function
|
|
|
|
def construct(self):
|
|
|
|
return (P.CumSum()(self.x0, self.axis0),
|
|
|
|
P.CumSum()(self.x1, self.axis1),
|
|
|
|
P.CumSum()(self.x2, self.axis2),
|
|
|
|
P.CumSum()(self.x3, self.axis3),
|
|
|
|
P.CumSum()(self.x4, self.axis4),
|
|
|
|
P.CumSum()(self.x5, self.axis5),
|
|
|
|
P.CumSum()(self.x6, self.axis6))
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.level0
|
|
|
|
@pytest.mark.platform_x86_gpu_training
|
|
|
|
@pytest.mark.env_onecard
|
|
|
|
def test_CumSum():
|
|
|
|
cumsum = CumSum()
|
|
|
|
cumsum = CumSum(nptype)
|
|
|
|
output = cumsum()
|
|
|
|
|
|
|
|
expect0 = np.cumsum(x0, axis=axis0)
|
|
|
|
@@ -130,3 +125,33 @@ def test_CumSum(): |
|
|
|
error6 = np.ones(shape=expect6.shape) * 1.0e-5
|
|
|
|
assert np.all(diff6 < error6)
|
|
|
|
assert output[6].shape == expect6.shape
|
|
|
|
|
|
|
|
@pytest.mark.level0
|
|
|
|
@pytest.mark.platform_x86_gpu_training
|
|
|
|
@pytest.mark.env_onecard
|
|
|
|
def test_cum_sum_uint8():
|
|
|
|
cum_sum(np.uint8)
|
|
|
|
|
|
|
|
@pytest.mark.level0
|
|
|
|
@pytest.mark.platform_x86_gpu_training
|
|
|
|
@pytest.mark.env_onecard
|
|
|
|
def test_cum_sum_int8():
|
|
|
|
cum_sum(np.int8)
|
|
|
|
|
|
|
|
@pytest.mark.level0
|
|
|
|
@pytest.mark.platform_x86_gpu_training
|
|
|
|
@pytest.mark.env_onecard
|
|
|
|
def test_cum_sum_int32():
|
|
|
|
cum_sum(np.int32)
|
|
|
|
|
|
|
|
@pytest.mark.level0
|
|
|
|
@pytest.mark.platform_x86_gpu_training
|
|
|
|
@pytest.mark.env_onecard
|
|
|
|
def test_cum_sum_float16():
|
|
|
|
cum_sum(np.float16)
|
|
|
|
|
|
|
|
@pytest.mark.level0
|
|
|
|
@pytest.mark.platform_x86_gpu_training
|
|
|
|
@pytest.mark.env_onecard
|
|
|
|
def test_cum_sum_float32():
|
|
|
|
cum_sum(np.float32)
|