Elewise计算功能。
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 |
无。 |