SwinTransformerLnQKV
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | × |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
| Kirin X90 处理器系列产品 | √ |
| Kirin 9030 处理器系列产品 | √ |
功能说明
-
算子功能:完成fp16权重场景下的Swin Transformer 网络模型的Q、K、V 的计算。
-
计算公式:
(Q,K,V)=((Layernorm(inputX)).transpose()∗weight).transpose().split()(Q,K,V)=((Layernorm(inputX)).transpose() * weight).transpose().split()
其中,weight 是 Q、K、V 三个矩阵权重的拼接。
参数说明
| 参数名 | 输入/输出 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| inputX | 输入 | 表示待进行归一化计算的目标张量,公式中的inputX, Device侧的aclTensor,数据类型支持FLOAT16。只支持维度为[B,S,H],其中B为batch size且只支持[1,32],S为原始图像长宽的乘积,H为序列长度和通道数的乘积且小于等于1024。不支持非连续的Tensor。 | FLOAT16 | ND |
| gamma | 输入 | 表示layernorm计算中尺度缩放的大小,维度只支持1维且为[H],Device侧的aclTensor。不支持非连续的Tensor。 | FLOAT16 | ND |
| beta | 输入 | 表示layernorm计算中尺度偏移的大小,维度只支持1维且维度为[H],Device侧的aclTensor。不支持非连续的Tensor。 | FLOAT16、BFLOAT16、INT8 | ND |
| weight | 输入 | 表示目标张量转换使用的权重矩阵,维度只支持2维且维度为[H, 3 * H],Device侧的aclTensor。不支持非连续的Tensor。 | FLOAT16 | ND |
| bias | 输入 | 表示目标张量转换使用的偏移矩阵,维度只支持1维且维度为[3 * H],Device侧的aclTensor。不支持非连续的Tensor。 | FLOAT16 | ND |
| query_output | 输出 | 表示转换之后的张量,公式中的Q,Device侧的aclTensor。不支持非连续的Tensor。 | FLOAT16 | ND |
| key_output | 输出 | 表示转换之后的张量,公式中的K,Device侧的aclTensor。不支持非连续的Tensor。 | FLOAT16 | ND |
| value_output | 输出 | 表示转换之后的张量,公式中的V,Device侧的aclTensor。不支持非连续的Tensor。 | FLOAT16 | ND |
- Atlas A2 训练系列产品/Atlas A2 推理系列产品:数据类型支持FLOAT16。
约束说明
- 当前不支持用户直接调用