ElewiseOperation
功能
常用的逐元素数值计算集合。
算子上下文
图1 ElewiseOperation算子上下文

定义
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 |
ElewiseType |
ELEWISE_UNDEFINED |
计算类型。
|
quantParam |
struct |
- |
量化参数,具体请参见表1。 |
mulsParam |
struct |
- |
乘值参数,具体请参见表2。 |
outTensorType |
aclDataType |
ACL_DT_UNDEFINED |
指定数据类型转换输出的数据类型。 |
ELEWISE_DYNAMIC_QUANT(逐行动态量化)输入输出描述
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
x |
[dim_0,dim_1,...,dim_n] |
float16 |
ND |
输入tensor,n>1。 最后一维H小于等于24576。 若为 |
z |
[dim_0,dim_1,...,dim_n] |
int8 |
ND |
量化输出结果。 |
scale |
[dim_0,...,dim_n-1] |
float |
ND |
反量化所需的scale。 |
offset |
[dim_0,...,dim_n-1] |
float |
ND |
反量化所需的offset,在“asymmetric”为“true”时才返回。当前不支持asymmetric为true的场景。 |
ELEWISE_TANH(逐元素计算双曲正切值)输入输出描述
参数 |
维度 |
数据类型 |
格式 |
描述 |
---|---|---|---|---|
x |
[dim_0,...,dim_n] |
float16 |
ND |
输入。 |
out |
[dim_0,...,dim_n] |
float16 |
ND |
输出。 |
规格约束
- ELEWISE_ADD、ELEWISE_MUL、ELEWISE_REALDIV、ELEWISE_SUB计算类型将会对输入进行广播后再进行指定操作。
- 输入x、y对应维度的对应值要求相同或至少其中一个为1。
- ElewiseDeQuantPerChannel 只支持
Atlas 800I A2 推理产品 /Atlas A2 训练系列产品 。