|
|
@@ -414,6 +414,29 @@ def test_sum2(): |
|
|
|
assert np.allclose(ms_output.asnumpy(), torch_output.numpy()) |
|
|
|
assert ms_output.asnumpy().dtype == torch_output.numpy().dtype |
|
|
|
|
|
|
|
def test_sum3(): |
|
|
|
|
|
|
|
torch_tensor = torch.tensor([True, True, False]) |
|
|
|
ms_tensor = pytorch.tensor([True, True, False]) |
|
|
|
torch_output = torch_tensor.sum() |
|
|
|
ms_output = ms_tensor.sum() |
|
|
|
assert np.allclose(ms_output.asnumpy(), torch_output.numpy()) |
|
|
|
assert ms_output.asnumpy().dtype == torch_output.numpy().dtype |
|
|
|
|
|
|
|
torch_tensor = torch.tensor([-1, 1], dtype=torch.bool) |
|
|
|
ms_tensor = pytorch.tensor([-1, 1], dtype=pytorch.bool) |
|
|
|
torch_output = torch_tensor.sum() |
|
|
|
ms_output = ms_tensor.sum() |
|
|
|
assert np.allclose(ms_output.asnumpy(), torch_output.numpy()) |
|
|
|
assert ms_output.asnumpy().dtype == torch_output.numpy().dtype |
|
|
|
|
|
|
|
torch_tensor = torch.tensor([-1, 1]) |
|
|
|
ms_tensor = pytorch.tensor([-1, 1]) |
|
|
|
torch_output = torch_tensor.sum(dtype=torch.bool) |
|
|
|
ms_output = ms_tensor.sum(dtype=pytorch.bool) |
|
|
|
assert np.allclose(ms_output.asnumpy(), torch_output.numpy()) |
|
|
|
assert ms_output.asnumpy().dtype == torch_output.numpy().dtype |
|
|
|
|
|
|
|
def test_split(): |
|
|
|
|
|
|
|
tensor = np.random.random((3, 3)).astype(np.float32) |
|
|
@@ -4907,6 +4930,7 @@ if __name__ == '__main__': |
|
|
|
test_numel() |
|
|
|
test_sum() |
|
|
|
test_sum2() |
|
|
|
test_sum3() |
|
|
|
test_split() |
|
|
|
test_numpy() |
|
|
|
test_ndimension() |
|
|
|
tensor([-1,1]),sum(dtype=bool)的情况,torch会把-1和1当作bool型处理,结果为True。ms.ops.sum不能处理bool型,如果先转换为int型,-1和1的sum为0,结果会返回False,所以需要先转换成bool再转int。