diff --git a/python/paddle/fluid/framework.py b/python/paddle/fluid/framework.py index f54ceb62c8ff320b5c9a98f34faf479477c166a3..10b92bdb7b90326a9f188e219c8ae2c5524cb660 100644 --- a/python/paddle/fluid/framework.py +++ b/python/paddle/fluid/framework.py @@ -1814,8 +1814,8 @@ class Operator(object): "The type of '%s' in operator %s should be " "one of [basestring(), str, Varibale] in python2, " "or one of [str, bytes, Variable] in python3." - "but received : " % (in_proto.name, type), - arg) + "but received : %s" % + (in_proto.name, type, arg)) self.desc.set_input(in_proto.name, in_arg_names) else: self.desc.set_input(in_proto.name, []) diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 879ef5f8e7d26ccb1f7c97a29194b2be52165b5d..47be0690f76792a8ceb9d602fb2289bf3f2652f3 100644 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -12280,16 +12280,18 @@ def py_func(func, x, out, backward_func=None, skip_vars_in_backward_input=None): x = [] elif isinstance(x, Variable): x = [x] - elif not isinstance(x, (list, tuple)): + elif isinstance(x, tuple): + x = list(x) + elif not isinstance(x, (list, tuple, Variable)): raise TypeError('Input must be Variable/list(Variable)/tuple(Variable)') if out is None: out_list = [] elif isinstance(out, Variable): out_list = [out] - elif isinstance(out, (list, tuple)): - out_list = out - else: + elif isinstance(out, tuple): + out_list = list(out) + elif not isinstance(x, (list, tuple, Variable)): raise TypeError( 'Output must be Variable/list(Variable)/tuple(Variable)')