diff --git a/python/paddle/fluid/tests/unittests/test_svd_op.py b/python/paddle/fluid/tests/unittests/test_svd_op.py index cf91162d9d8ca4200681b2efac320c594884a63d..a760fef4ff2528bef558c1a895c6e383b0cf16b4 100644 --- a/python/paddle/fluid/tests/unittests/test_svd_op.py +++ b/python/paddle/fluid/tests/unittests/test_svd_op.py @@ -320,6 +320,16 @@ class TestSvdAPI(unittest.TestCase): ) np.testing.assert_allclose(fetches[0], gt_s, rtol=1e-05) + def test_errors(self): + with paddle.fluid.dygraph.guard(): + # The size of input in svd should not be 0. + def test_0_size(): + array = np.array([], dtype=np.float32) + x = paddle.to_tensor(np.reshape(array, [0, 0]), dtype='float32') + paddle.linalg.svd(x, full_matrices=False) + + self.assertRaises(ValueError, test_0_size) + if __name__ == "__main__": paddle.enable_static() diff --git a/python/paddle/tensor/linalg.py b/python/paddle/tensor/linalg.py index c59202977fde988946f2a5ea5f4f6ee076ff8af9..de8374d4ce2b4fc25715daf7af4c417cfded8dda 100644 --- a/python/paddle/tensor/linalg.py +++ b/python/paddle/tensor/linalg.py @@ -1921,6 +1921,7 @@ def svd(x, full_matrices=False, name=None): # U * UH == I # V * VH == I """ + if in_dygraph_mode(): return _C_ops.svd(x, full_matrices) else: