diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/compare/test_algorithm.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/compare/test_algorithm.py index 99a2d23cf49acb3ef1ce6e4de2ea3b43c6566ed4..ba35b4670b56d8a299767d2ae04974924f30b90b 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/compare/test_algorithm.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/compare/test_algorithm.py @@ -1,13 +1,14 @@ import unittest import numpy as np +import torch from api_accuracy_checker.compare import algorithm as alg from api_accuracy_checker.compare.algorithm import CompareColumn class TestAlgorithmMethods(unittest.TestCase): def test_compare_torch_tensor(self): - cpu_output = np.array([1.0, 2.0, 3.0]) - npu_output = np.array([1.0, 2.0, 3.0]) + cpu_output = torch.Tensor([1.0, 2.0, 3.0]) + npu_output = torch.Tensor([1.0, 2.0, 3.0]) compare_column = CompareColumn() status, compare_column, message = alg.compare_torch_tensor(cpu_output, npu_output, compare_column) self.assertEqual(status, "pass") diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/dump/test_dump.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/dump/test_dump.py index 4b543c5276456e5c628ea383b0ef5f2f9d86ffe7..655e624e809a5cceb406b9fce9df4e4f89efb4ee 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/dump/test_dump.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/dump/test_dump.py @@ -15,7 +15,7 @@ class TestDumpUtil(unittest.TestCase): self.assertFalse(DumpUtil.get_dump_switch()) def test_incr_iter_num_maybe_exit(self): - msCheckerConfig.target_iter = 5 + msCheckerConfig.target_iter = [5] msCheckerConfig.enable_dataloader = True DumpUtil.call_num = 6 diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/dump/test_info_dump.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/dump/test_info_dump.py index 27efdf02ac3041b0866d06b9e147bfe7a386bd80..2574716c408f8c2c5f3433ff7abde698a9a219b5 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/dump/test_info_dump.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/dump/test_info_dump.py @@ -13,7 +13,7 @@ class TestInfoDump(unittest.TestCase): with patch('api_accuracy_checker.dump.info_dump.write_json') as mock_write_json: write_api_info_json(api_info) rank = os.getpid() - mock_write_json.assert_called_with(f'./backward_info_{rank}.json', api_info.grad_info_struct) + mock_write_json.assert_called_with(f'./step1/backward_info_{rank}.json', api_info.grad_info_struct) def test_write_api_info_json_invalid_type(self): api_info = APIInfo("test_api", True, True, "save_path") @@ -22,7 +22,7 @@ class TestInfoDump(unittest.TestCase): def tearDown(self): rank = os.getpid() - files = [f'./backward_info_{rank}.json'] + files = [f'./step1/backward_info_{rank}.json'] for file in files: if os.path.exists(file): os.remove(file) diff --git a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py index 9f464cab4fe9a39fafbe1ac0586c147ebc2f706d..e67ee1d5ae1c51e5bbbf062baf96df97668ea214 100644 --- a/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py +++ b/debug/accuracy_tools/api_accuracy_checker/test/ut/run_ut/test_run_ut.py @@ -1,11 +1,12 @@ # coding=utf-8 -from api_accuracy_checker.run_ut.run_ut import generate_cpu_params, get_api_info, UtDataInfo -import unittest -import numpy as np import os import copy +import numpy as np +import unittest +from unittest.mock import patch from api_accuracy_checker.run_ut.run_ut import * from api_accuracy_checker.common.utils import get_json_contents +from api_accuracy_checker.run_ut.run_ut import generate_cpu_params, get_api_info, UtDataInfo base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) forward_file = os.path.join(base_dir, "../resources/forward.json") @@ -24,17 +25,31 @@ class TestRunUtMethods(unittest.TestCase): self.assertEqual(out.dtype, torch.float32) self.assertEqual(out.requires_grad, True) self.assertEqual(out.shape, torch.Size([2, 2560, 24, 24])) - + def test_generate_npu_params(self): - api_info = copy.deepcopy(api_info_dict) - [api_type, api_name, _] = api_full_name.split("*") - args, kwargs, need_grad = get_api_info(api_info, api_name) - npu_args, npu_kwargs = generate_npu_params(args, kwargs, True) - self.assertEqual(len(npu_args), 1) - self.assertEqual(npu_args[0].dtype, torch.float16) - self.assertEqual(npu_args[0].requires_grad, True) - self.assertEqual(npu_args[0].shape, torch.Size([2, 2560, 24, 24])) - self.assertEqual(npu_kwargs, {'inplace': False}) + MockTensor = namedtuple('MockTensor', ['requires_grad', 'dtype', 'shape']) + mock_tensor = MockTensor(True, torch.float16, torch.Size([2, 2560, 24, 24])) + + with patch.multiple('torch.Tensor', + to=DEFAULT, + clone=DEFAULT, + detach=DEFAULT, + requires_grad_=DEFAULT, + type_as=DEFAULT, + retain_grad=DEFAULT) as mocks: + mocks['clone'].return_value = mock_tensor + mocks['detach'].return_value = mock_tensor + mocks['requires_grad_'].return_value = mock_tensor + mocks['type_as'].return_value = mock_tensor + mocks['retain_grad'].return_value = None + mocks['to'].return_value = mock_tensor + + npu_args, npu_kwargs = generate_npu_params([mock_tensor], {'inplace': False}, True) + self.assertEqual(len(npu_args), 1) + self.assertEqual(npu_args[0].dtype, torch.float16) + self.assertEqual(npu_args[0].requires_grad, True) + self.assertEqual(npu_args[0].shape, torch.Size([2, 2560, 24, 24])) + self.assertEqual(npu_kwargs, {'inplace': False}) def test_generate_cpu_params(self): api_info = copy.deepcopy(api_info_dict)