From 34d015386e35a593225e6b7c3496dcd1d77814fe Mon Sep 17 00:00:00 2001 From: drryanhuang Date: Sun, 4 Feb 2024 14:23:47 +0000 Subject: [PATCH 1/2] fix_test_conv_pir --- python/paddle/tensor/linalg.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/python/paddle/tensor/linalg.py b/python/paddle/tensor/linalg.py index 15b71719ba9e7e..43ab7109720ee3 100644 --- a/python/paddle/tensor/linalg.py +++ b/python/paddle/tensor/linalg.py @@ -1776,8 +1776,7 @@ def cov(x, rowvar=True, ddof=True, fweights=None, aweights=None, name=None): norm_factor = w_sum - (w * aweights).sum() / w_sum else: norm_factor = w_sum - ddof - if norm_factor <= 0: - norm_factor = paddle.to_tensor(0, dtype=nx.dtype) + norm_factor = paddle.clip(norm_factor, min=0) nx = nx - avg.unsqueeze(1) xxt = paddle.mm(nx, nx_w.t().conj()) cov = paddle.divide(xxt, norm_factor).squeeze() From fe5f57bc7a5c3eee4d5029bc831fea53f733ea58 Mon Sep 17 00:00:00 2001 From: drryanhuang Date: Sun, 4 Feb 2024 14:33:50 +0000 Subject: [PATCH 2/2] fix test_cov && test_corrcoef --- test/legacy_test/test_zero_dim_tensor.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/test/legacy_test/test_zero_dim_tensor.py b/test/legacy_test/test_zero_dim_tensor.py index 1f9288f905aac0..4e464d6e28a543 100644 --- a/test/legacy_test/test_zero_dim_tensor.py +++ b/test/legacy_test/test_zero_dim_tensor.py @@ -5275,28 +5275,29 @@ def test_multi_dot(self): self.assertEqual(res[2].shape, (4, 5)) self.assertEqual(res[3].shape, (5,)) + @test_with_pir_api @prog_scope() def test_cov(self): xt_1 = paddle.randn((12,)) xt_1.stop_gradient = False - out = paddle.linalg.cov(xt_1) - paddle.static.append_backward(out) - + _, xt_1_grad = paddle.static.append_backward( + out, parameter_list=[xt_1] + )[0] prog = paddle.static.default_main_program() - res = self.exe.run(prog, fetch_list=[out, xt_1.grad_name]) + res = self.exe.run(prog, fetch_list=[out, xt_1_grad]) self.assertEqual(res[0].shape, ()) self.assertEqual(res[1].shape, (12,)) + @test_with_pir_api @prog_scope() def test_corrcoef(self): x = paddle.randn((12,)) x.stop_gradient = False out = paddle.linalg.corrcoef(x) - paddle.static.append_backward(out) - + _, x_grad = paddle.static.append_backward(out, parameter_list=[x])[0] prog = paddle.static.default_main_program() - res = self.exe.run(prog, fetch_list=[out, x.grad_name]) + res = self.exe.run(prog, fetch_list=[out, x_grad]) self.assertEqual(res[0].shape, ()) self.assertEqual(res[1].shape, (12,))