Created by: GaoWei8
lod_reset 增强输入类型检查
lod_reset(x, y=None, target_lod=None)
Python接口Input类型检查
- 检查
x
- 检查类型是否为Variable
- 检查数据类型是否为"float32", "float64", "int32", "int64"
2.检查y
- 检查类型是否为Variable
- 当lod_level>0时,检查数据类型是否为"float32", "float64", "int32", "int64"
- 当lod_level=0时,检查数据类型是否为 "int32", "int64"
c++不合规报错检查增强:
- 使用OP_INOUT_CHECK,增加输入、输出是否设置的检查。
NotFoundError: No Input(X) found for LoDReset operator.
NotFoundError: No Output(Out) found for LoDReset operator.
- 错误类型有误,报错内容需改 修改前报错:
Error: If Input(Y) not provided, the target lod should be specified by attribute `target_lod`.
修改后报错:
InvalidArgumentError: If Input(Y) not provided, the target lod should be specified by attribute `target_lod`. But the size of `target_lod` is 0.
- 错误类型有误,报错内容需改 修改前报错:
Error: Last value of `Y`'s last level LoD should be equal to the first dimension of `X`
修改后报错:
InvalidArgumentError: The last value of `Y`'s last level LoD should be equal to the first dimension of `X`. But received the last value of `Y`'s last level LoD is 5, the first dimension of `X` is 6.
- 错误类型有误,报错内容需改 修改前报错:
Error: Size of target LoD should be greater than 1.
修改后报错:
InvalidArgumentError: The size of target LoD should be greater than 1. But received the size of target LoD is 1.
- 错误类型有误,报错内容需改 修改前报错:
Error: Target LoD should be a vector starting from 0.
修改后报错:
InvalidArgumentError: Target LoD should be a vector starting from 0. But target LoD starts from 2.
- 错误类型有误,报错内容需改 修改前报错:
Error: Target LoD should be a vector end with the first dimension of Input(X).
修改后报错:
InvalidArgumentError: The last value of `Target LoD`'s last level LoD should be equal to the first dimension of `X`. But received the last value of `Target LoD`'s last level LoD is 4, the first dimension of `X` is 6.
- 错误类型有误,报错内容需改 修改前报错:
Error: Target LoD should be an ascending vector.
修改后报错:
InvalidArgumentError: Target LoD should be an ascending vector. But the 2 element is 6 and the 1 element of Target LoD is 7.