ElewiseOperation
功能
常用的逐元素数值计算集合。
约束
- ELEWISE_ADD、ELEWISE_MUL、ELEWISE_REALDIV、ELEWISE_SUB计算类型将会对输入进行广播后再进行指定操作。
- 输入x、y对应维度的对应值要求相同或至少其中一个为1。
定义
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, ELEWISE_DYNAMIC_QUANT, ELEWISE_TANH }; struct QuantParam { float inputScale = 1.0f; bool asymmetric = false; int inputOffset = 0; }; struct MulsParam { float varAttr = 0.0f; }; ElewiseType elewiseType = ELEWISE_UNDEFINED; QuantParam quantParam; MulsParam mulsParam; aclDataType outTensorType = ACL_DT_UNDEFINED; };
成员
成员名称 |
描述 |
---|---|
ElewiseType |
计算类型,支持如下种类:
|
QuantParam |
量化参数,具体请参见表1。 |
MulsParam |
乘值参数,具体请参见表2。 |
elewiseType |
计算方式。 |
quantParam |
量化参数。 |
mulsParam |
乘值参数 |
outTensorType |
指定数据类型转换输出的数据类型,具体请参见aclDataType。 |
ELEWISE_DYNAMIC_QUANT输入输出描述
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
x |
[n1, ..., ny, H] |
float16 |
ND |
输入向量,n>1,且不支持数据类型为BF16。 最后一维H小于等于24576。 若为Atlas 推理系列产品,最后一维H小于或等于4096,并为32的倍数。 |
z |
[n1, ..., ny, H] |
int8 |
ND |
量化输出结果。 |
scale |
[n1, ..., ny] |
float |
ND |
反量化所需的scale。 |
offset |
[n1, ..., ny] |
float |
ND |
反量化所需的offset,在“asymmetric”为“true”时才返回。 |
ELEWISE_TANH输入输出描述
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
x |
[-1, ..., -1] |
float16 |
ND |
输入。 |
out |
[-1, ..., -1] |
float16 |
ND |
输出。 |