未验证 提交 ddcb81d1 编写于 作者: T Tao Luo 提交者: GitHub

refine error message of input TypeError in framework.py (#19970) (#20648)

test=release/1.6
上级 c33312f7
...@@ -1756,9 +1756,12 @@ class Operator(object): ...@@ -1756,9 +1756,12 @@ class Operator(object):
elif isinstance(arg, Variable): elif isinstance(arg, Variable):
in_arg_names.append(cpt.to_text(arg.name)) in_arg_names.append(cpt.to_text(arg.name))
else: else:
raise ValueError( raise TypeError(
"not suprt args type , should be[ string_type, binary_type, Varibale]" "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)
self.desc.set_input(in_proto.name, in_arg_names) self.desc.set_input(in_proto.name, in_arg_names)
else: else:
self.desc.set_input(in_proto.name, []) self.desc.set_input(in_proto.name, [])
......
...@@ -17,6 +17,8 @@ from __future__ import print_function ...@@ -17,6 +17,8 @@ from __future__ import print_function
import op_test import op_test
import unittest import unittest
import numpy import numpy
import paddle.fluid as fluid
from paddle.fluid import Program, program_guard
def create_test_class(op_type, typename, callback): def create_test_class(op_type, typename, callback):
...@@ -45,5 +47,16 @@ for _type_name in {'float32', 'float64', 'int32', 'int64'}: ...@@ -45,5 +47,16 @@ for _type_name in {'float32', 'float64', 'int32', 'int64'}:
create_test_class('equal', _type_name, lambda _a, _b: _a == _b) create_test_class('equal', _type_name, lambda _a, _b: _a == _b)
create_test_class('not_equal', _type_name, lambda _a, _b: _a != _b) create_test_class('not_equal', _type_name, lambda _a, _b: _a != _b)
class TestCompareOpError(op_test.OpTest):
def test_errors(self):
with program_guard(Program(), Program()):
# The input x and y of compare_op must be Variable.
x = fluid.layers.data(name='x', shape=[1], dtype="float32")
y = fluid.create_lod_tensor(
numpy.array([[-1]]), [[1]], fluid.CPUPlace())
self.assertRaises(TypeError, fluid.layers.greater_equal, x, y)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册