LayerNormOperation
功能
LayerNorm归一化处理。当前支持三种:NORM、PRENORM、POSTNORM。


约束
- beginNormAxis维度小于等于输入x的维度。
- 所有输入输出Tensor的最后一维大小相等。
定义
struct LayerNormParam { enum LayerNormType : int { LAYER_NORM_UNDEFINED = 0, LAYER_NORM_NORM, LAYER_NORM_PRENORM, LAYER_NORM_POSTNORM, LAYER_NORM_MAX, }; struct NormParam { QuantType quantType = QUANT_UNDEFINED; float epsilon = 1e-5; int32_t beginNormAxis = 0; int32_t beginParamsAxis = 0; DynamicQuantType dynamicQuantType = DYNAMIC_QUANT_UNDEFINED; }; struct PreNormParam { QuantType quantType = QUANT_UNDEFINED; float epsilon = 1e-5; size_t opMode = 0; float zoomScaleValue = 1.0f; }; struct PostNormParam { QuantType quantType = QUANT_UNDEFINED; float epsilon = 1e-5; size_t opMode = 0; float zoomScaleValue = 1.0f; }; LayerNormType layerType = LAYER_NORM_UNDEFINED; NormParam normParam; PreNormParam preNormParam; PostNormParam postNormParam; };
成员
成员名称 |
描述 |
---|---|
layerType |
归一化类型。
|
normParam |
NORM参数,具体请参见表1。 |
preNormParam |
PRETNORM参数,具体请参见表2。 |
postNormParam |
POSTNORM参数,具体请参见表3。 |
参数 |
描述 |
---|---|
quantType |
量化类型。 当前支持以下类型。 QUANT_UNDEFINED; QUANT_INT8。 |
epsilon |
Epsilon,归一化时加在分母上防止除零。 |
beginNormAxis |
归一化的维度,默认值为0,从第几维开始norm,同时决定输入gamma和beta维度。 |
beginParamsAxis |
归一化的维度,默认值为0,决定从第几维开始把后面的维度按轴合并。 |
dynamicQuantType |
动态量化类型。默认为DYNAMIC_QUANT_UNDEFINED非动态量化。当前版本暂不支持非对称动态量化。 |

8.0.RC2及后续版本normParam不再支持quantInputScale、quantInputOffset、quantInputAlpha量化参数。
参数 |
描述 |
---|---|
quantType |
量化类型。当前仅支持QUANT_UNDEFINED。 |
epsilon |
Epsilon,归一化时加在分母上防止除零。 |
opMode |
|
zoomScaleValue |
缩放因子。 |
参数 |
描述 |
---|---|
quantType |
量化类型。当前支持以下类型。 QUANT_UNDEFINED; QUANT_INT8。 |
epsilon |
Epsilon,归一化时加在分母上防止除零。 |
opMode |
|
zoomScaleValue |
缩放因子。 |

8.0.RC2及后续版本postNormParam不再支持quantInputScale、quantInputOffset、quantInputAlpha量化参数。