昇腾社区首页
中文
注册

PadWithHiddenStateOperation

产品支持情况

产品

是否支持

Atlas A3 推理系列产品/Atlas A3 训练系列产品

x

Atlas 800I A2 推理产品/Atlas A2 训练系列产品

Atlas 训练系列产品

x

Atlas 推理系列产品

x

Atlas 200I/500 A2 推理产品

x

功能说明

PadWithHiddenState是带隐藏层的pad,这个算子的主要作用是将变长的序列填充为固定长度,便于批处理和模型训练。

定义

1
2
3
4
5
struct PadWithHiddenStateParam {
    std::vector<int32_t> qSeqLen;
    int32_t  maxSeqLen = 4096;
    uint8_t rsv[12] = {0};
};

参数列表

成员名称

类型

默认值

描述

qSeqLen

std::vector<int32_t>

-

每个batch的实际输入长度。元素个数为batchSize。batchSize的值最大不超过32。

maxSeqLen

int32_t

4096

qSeqLen中最大输入长度。取值不超过4096。

rsv[12]

uint8_t

{0}

预留参数。

输入

参数

维度

数据类型

格式

描述

x

[nTokens, hiddenSize]

float16

ND

pad前不带冗余的tensor。与unpad输出shape一致。

  • 计算公式

    这个公式用于计算一个batch中所有序列的总token数。

  • 示例

    batchSize = 3

    qSeqlen = [5, 10, 7]

    则nTokens = 5 +10 + 7 =22

输出

参数

维度

数据类型

格式

描述

output

[batchSize, maxSeqLen, hiddenSize]

float16

ND

pad后带冗余的tensor。与unpad输入shape一致。