ElewiseOperation
功能
Elewise计算功能。
约束
- ELEWISE_ADD、ELEWISE_MUL、ELEWISE_REALDIV、ELEWISE_SUB计算类型将会对输入进行广播后再进行指定操作。
- 输入x、y对应维度的对应值要求相同或至少其中一个为1。
- Atlas 推理系列产品(Ascend 310P AI处理器)不支持ELEWISE_DEQUANT_PER_CHANNEL。
定义
struct ElewiseParam {
enum ElewiseType: int {
ELEWISE_UNDEFINED = 0,
ELEWISE_CAST,
ELEWISE_MULS,
ELEWISE_COS,
ELEWISE_SIN,
ELEWISE_NEG,
ELEWISE_QUANT,
ELEWISE_LOGICAL_NOT,
ELEWISE_ADD,
ELEWISE_MUL,
ELEWISE_REALDIV,
ELEWISE_LOGICAL_AND,
ELEWISE_LOGICAL_OR,
ELEWISE_LESS,
ELEWISE_GREATER,
ELEWISE_SUB,
ELEWISE_EQUAL,
ELEWISE_QUANT_PER_CHANNEL,
ELEWISE_DEQUANT_PER_CHANNEL,
};
struct QuantParam {
float inputScale = 1.0f;
int inputOffset = 0;
};
struct MulsParam {
float varAttr = 0.0f;
};
ElewiseType elewiseType = ELEWISE_UNDEFINED;
QuantParam quantParam;
MulsParam mulsParam;
aclDataType outTensorType = ACL_DT_UNDEFINED;
};
成员
成员名称 |
描述 |
|---|---|
elewiseType |
计算类型,支持如下种类:
当ElewiseType为ELEWISE_MULS时,用户需要注意传入的参数varAttr与输入x的元素相乘后可能导致的数值溢出问题。 |
quantParam |
量化参数。 |
MulsParam |
Muls参数。 |
outTensorType |
当elewiseType = ELEWISE_CAST时,指定其输出Tensor的数据类型。 |
输入
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/float/int64/int32 |
ND |
数据类型之间的转换 |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float/float16 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/int64 |
ND |
y |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/int64 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16 |
ND |
y |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
y |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
y |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int64/float/float16 |
ND |
equal不支持int64 |
y |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int64/float/float16 |
ND |
equal不支持int64 |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
x |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float/float16/bf16 |
ND |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
x |
[b1,...,bx,n1,...,ny] |
float16 |
ND |
无。 |
scale |
[n1,…,ny] |
float16 |
ND |
scale中元素要求不为0。可以为标量。 |
offset |
[n1,…,ny] |
int8 |
ND |
offset可以为空Tensor。可以为标量。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
y |
[b1,...,bx,n1,...,ny] |
int8 |
ND |
无。 |
scale |
[n1,…,ny] |
float16 |
ND |
可以为标量。 |
offset |
[n1,…,ny] |
int8 |
ND |
offset可以为空Tensor。可以为标量。 |
输出
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/float/int64/int32 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float/float16 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16/int64 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float16 |
ND |
参数 |
维度 |
数据类型 |
格式 |
|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float |
ND |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
bool类型张量,维度为输入Broadcast后的结果。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
bool类型张量,维度为输入Broadcast后的结果。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
int8 |
ND |
bool类型张量,维度为输入Broadcast后的结果。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
output |
[-1,…,-1] -1表示当前维度的大小没有约束。 |
float/float16/bf16 |
ND |
bool类型张量,维度为输入Broadcast后的结果。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
y |
[b1,...,bx,n1,...,ny] |
int8 |
ND |
无。 |
参数 |
维度 |
数据类型 |
格式 |
描述 |
|---|---|---|---|---|
x |
[b1,...,bx,n1,...,ny] |
float16 |
ND |
无。 |

