算子定义函数的装饰器,为算子定义函数提供基础的校验功能,对算子的输入、输出、属性及Kernel Name进行基础校验。
check_op_params(*type_args, **type_kwargs)
参数名 |
说明 |
---|---|
type_args |
可变长度的列表,取值范围为•输入输出参数、•属性与•KERNEL_NAME。 |
type_kwargs |
保留参数,暂不使用。 |
参数取值 |
参数含义 |
---|---|
REQUIRED_INPUT |
表明在算子定义函数中该参数是算子的必须输入。 会做如下常规校验:
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_INPUT |
表明在算子定义函数中,该参数是算子的可选输入。 可以为None,其他的校验同REQUIRED_INPUT。 若校验失败,则抛出校验错误的异常RuntimeError。 |
DYNAMIC_INPUT |
表明在算子定义函数中,该参数是算子的动态输入。 需要为list或者tuple类型,且list/tuple中的每个元素都要满足REQUIRED_INPUT的校验。 若校验失败,则抛出校验错误的异常。 |
REQUIRED_OUTPUT |
表明在算子定义函数中,该参数是算子的必须输出。 校验规则同REQUIRED_INPUT。 |
OPTION_OUTPUT |
表明在算子定义函数中,该参数是算子的可选输出。 校验规则同OPTION_INPUT。 |
DYNAMIC_OUTPUT |
表明在算子定义函数中,该参数是算子的可选输出。 校验规则同DYNAMIC_INPUT。 |
参数取值 |
参数含义 |
---|---|
REQUIRED_ATTR_INT |
表明在算子定义函数中,该参数是算子的必选属性,属性的类型需要为INT(int64)类型。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
REQUIRED_ATTR_FLOAT |
表明在算子定义函数中,该参数是算子的必须属性,属性的类型需要为FLOAT(float32)类型。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
REQUIRED_ATTR_STR |
表明在算子定义函数中,该参数是算子的必须属性,属性的类型需要为String类型。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
REQUIRED_ATTR_BOOL |
表明在算子定义函数中,该参数是算子的必须属性,属性的类型需要为Bool类型。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
REQUIRED_ATTR_TYPE |
表明在算子定义函数中,该参数是算子的必须属性,属性的类型需要为STRING类型,值必须在["int8", "int16", "int32", "int64", "float16", "float32", "float64"]中。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
REQUIRED_ATTR_LIST_INT |
表明在算子定义函数中,该参数是算子的必须属性,属性的类型需要为INT类型的list或者tuple。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
REQUIRED_ATTR_LIST_FLOAT |
表明在算子定义函数中,该参数是算子的必须属性,属性的类型需要为float类型的list或者tuple。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
REQUIRED_ATTR_LIST_BOOL |
表明在算子定义函数中,该参数是算子的必须属性,属性的类型需要为bool类型的list或者tuple。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
REQUIRED_ATTR_LIST_LIST_INT |
表明在算子定义函数中,该参数是算子的必须属性,属性的类型需要为INT类型的二维list或者tuple。 若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_INT |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_FLOAT |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_STR |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_BOOL |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_TYPE |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_LIST_INT |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_LIST_FLOAT |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_LIST_BOOL |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
OPTION_ATTR_LIST_LIST_INT |
表明在算子定义函数中,该参数是算子的可选属性。
若校验失败,则抛出校验错误的异常(RuntimeError)。 |
表明算子定义函数中,该参数是算子的kernel name,kernel name需要小于等于200个字符,并且只能包含[A-Za-z_][A-Za-z0-9_]这些字符。
若校验失败,则抛出校验错误的异常(RuntimeError)。
无返回值,校验错误会抛出RuntimeError。
无。
@check_op_params(REQUIRED_INPUT, REQUIRED_OUTPUT, REQUIRED_ATTR_STR, KERNEL_NAME) def sample_op(x, y, attr_a, kernel_name):
调用装饰器函数check_op_params对算子定义函数sample_op的入参进行校验,如下所示: