LayerNormParam
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
layer_type |
torch_atb.LayerNormParam.LayerNormType |
torch_atb.LayerNormParam.LayerNormType.LAYER_NORM_UNDEFINED |
此默认类型不可用,用户需配置此项参数。 |
norm_param |
torch_atb.LayerNormParam.NormParam |
- |
- |
pre_norm_param |
torch_atb.LayerNormParam.PreNormParam |
- |
- |
post_norm_param |
torch_atb.LayerNormParam.PostNormParam |
- |
- |
LayerNormParam.LayerNormType
枚举项:
- LAYER_NORM_UNDEFINED
- LAYER_NORM_NORM
- LAYER_NORM_PRENORM
- LAYER_NORM_POSTNORM
- LAYER_NORM_MAX
LayerNormParam.NormParam
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
quant_type |
torch_atb.QuantType |
torch_atb.QuantType.QUANT_UNQUANT |
表示不进行量化操作。 |
epsilon |
float |
1e-5 |
- |
begin_norm_axis |
int |
0 |
- |
begin_params_axis |
int |
0 |
- |
dynamic_quant_type |
torch_atb.DynamicQuantType |
torch_atb.DynamicQuantType.DYNAMIC_QUANT_UNDEFINED |
- |
LayerNormParam.PreNormParam
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
quant_type |
torch_atb.QuantType |
torch_atb.QuantType.QUANT_UNQUANT |
表示不进行量化操作。 |
epsilon |
float |
1e-5 |
- |
op_mode |
int |
0 |
- |
zoom_scale_value |
float |
1.0 |
- |
LayerNormParam.PostNormParam
属性 |
类型 |
默认值 |
描述 |
---|---|---|---|
quant_type |
torch_atb.QuantType |
torch_atb.QuantType.QUANT_UNQUANT |
表示不进行量化操作。 |
epsilon |
float |
1e-5 |
- |
op_mode |
int |
0 |
- |
zoom_scale_value |
float |
1.0 |
- |
调用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import torch import torch_atb import numbers def layernorm(): eps=1e-05 batch, sentence_length, embedding_dim = 20, 5, 10 embedding = torch.randn(batch, sentence_length, embedding_dim) embedding_npu = embedding.npu() normalized_shape = (embedding_dim,) if isinstance(embedding_dim, numbers.Integral) else tuple(embedding_dim) weight = torch.ones(normalized_shape, dtype=torch.float32).npu() bias = torch.zeros(normalized_shape, dtype=torch.float32).npu() print("embedding: ", embedding_npu) print("weight: ", weight) print("bias: ", bias) layer_norm_param = torch_atb.LayerNormParam(layer_type = torch_atb.LayerNormParam.LayerNormType.LAYER_NORM_NORM) layer_norm_param.norm_param.epsilon = eps layer_norm_param.norm_param.begin_norm_axis = len(normalized_shape) * -1 layernorm = torch_atb.Operation(layer_norm_param) def layernorm_run(): layernorm_outputs = layernorm.forward([embedding_npu, weight, bias]) return layernorm_outputs outputs = layernorm_run() print("outputs: ", outputs) if __name__ == "__main__": layernorm() |