From 472c90858da73c8d6f0465a67253c7de75acb508 Mon Sep 17 00:00:00 2001 From: Aurelius84 Date: Tue, 14 Dec 2021 20:26:42 +0800 Subject: [PATCH] [@to_static]Enhance error msg in paddle.assign in static mode (#38069) * Enhance error msg in paddle.assign in static mode * fix unittest --- python/paddle/fluid/layers/tensor.py | 5 +++++ python/paddle/fluid/tests/unittests/test_assign_op.py | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/python/paddle/fluid/layers/tensor.py b/python/paddle/fluid/layers/tensor.py index cc32f2b5156..4b4b4d0d61c 100644 --- a/python/paddle/fluid/layers/tensor.py +++ b/python/paddle/fluid/layers/tensor.py @@ -616,6 +616,11 @@ def assign(input, output=None): helper.append_op( type='assign', inputs={'X': [input]}, outputs={'Out': [output]}) elif isinstance(input, numpy.ndarray): + # Not support [var, var, ...] currently. + if len(input.shape) > 0 and any(isinstance(x, Variable) for x in input): + raise TypeError( + "Required type(input) numpy.ndarray, but found `list(Variable)` in input." + ) dtype = convert_np_dtype_to_dtype_(input.dtype) if dtype == VarDesc.VarType.FP64: # Setting FP64 numpy data is not supported in Paddle, so we diff --git a/python/paddle/fluid/tests/unittests/test_assign_op.py b/python/paddle/fluid/tests/unittests/test_assign_op.py index 694fd3c6561..7513d8810e6 100644 --- a/python/paddle/fluid/tests/unittests/test_assign_op.py +++ b/python/paddle/fluid/tests/unittests/test_assign_op.py @@ -181,6 +181,13 @@ class TestAssignOpErrorApi(unittest.TestCase): x2 = np.array([[2.5, 2.5]], dtype='uint8') self.assertRaises(TypeError, paddle.assign, x2) + def test_type_error(self): + paddle.enable_static() + with program_guard(Program(), Program()): + x = [paddle.randn([3, 3]), paddle.randn([3, 3])] + # not support to assign list(var) + self.assertRaises(TypeError, paddle.assign, x) + if __name__ == '__main__': paddle.enable_static() -- GitLab