From 13caae6627d543f439da86018d9399c46ca96016 Mon Sep 17 00:00:00 2001 From: co63oc Date: Mon, 9 Jun 2025 17:21:19 +0800 Subject: [PATCH 1/2] Fix --- test/legacy_test/test_pow.py | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/test/legacy_test/test_pow.py b/test/legacy_test/test_pow.py index c6c80bc30db4c..5c9fb085b1d20 100755 --- a/test/legacy_test/test_pow.py +++ b/test/legacy_test/test_pow.py @@ -232,5 +232,44 @@ def x_dtype_error(): self.assertRaises(TypeError, x_dtype_error) +class TestPowerAPI_ZeroSize(unittest.TestCase): + """TestPowerAPI.""" + + def setUp(self): + self.places = [] + if ( + os.environ.get('FLAGS_CI_both_cpu_and_gpu', 'False').lower() + in ['1', 'true', 'on'] + or not core.is_compiled_with_cuda() + ): + self.places.append('cpu') + if core.is_compiled_with_cuda(): + self.places.append('gpu') + + def _test_power(self, shape): + """test_power.""" + np.random.seed(7) + for place in self.places: + # test 1-d float tensor ** float scalar + dims = shape + x = (np.random.rand(*dims) * 10).astype(np.float64) + y = np.random.rand() * 10 + paddle.disable_static() + # Set device + paddle.set_device(place) + x_ = paddle.to_tensor(x) + x_.stop_gradient = False + y_ = y + res = paddle.pow(x_, y_) + np.testing.assert_allclose(res, np.power(x, y), rtol=1e-05) + loss = paddle.sum(res) + loss.backward() + np.testing.assert_allclose(x_.grad.shape, x_.shape) + + def test_power(self): + self._test_power((0, 2)) + self._test_power((0, 0)) + + if __name__ == '__main__': unittest.main() From fe671a190c8d2487960d93014a03cac13211ef4e Mon Sep 17 00:00:00 2001 From: co63oc Date: Mon, 9 Jun 2025 17:22:07 +0800 Subject: [PATCH 2/2] Fix --- test/legacy_test/test_pow.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/legacy_test/test_pow.py b/test/legacy_test/test_pow.py index 5c9fb085b1d20..dbbd5c06b8f37 100755 --- a/test/legacy_test/test_pow.py +++ b/test/legacy_test/test_pow.py @@ -247,15 +247,12 @@ def setUp(self): self.places.append('gpu') def _test_power(self, shape): - """test_power.""" np.random.seed(7) for place in self.places: - # test 1-d float tensor ** float scalar dims = shape x = (np.random.rand(*dims) * 10).astype(np.float64) y = np.random.rand() * 10 paddle.disable_static() - # Set device paddle.set_device(place) x_ = paddle.to_tensor(x) x_.stop_gradient = False