diff --git a/python/paddle/fluid/layers/tensor.py b/python/paddle/fluid/layers/tensor.py index cc32f2b51564765bccf563b360f067be25656df3..4b4b4d0d61c41565bdd87cd34ced3549b1282d74 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 694fd3c656107f1ebaeb79042036e3566229c53b..7513d8810e61ada6711e6f0d70b74b584d176d82 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()