昇腾社区首页
中文
注册

PadWithHiddenStateOperation

功能

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

定义

struct PadWithHiddenStateParam {
    std::vector<int32_t> qSeqLen;
    int32_t  maxSeqLen = 4096;
};

参数列表

成员名称

类型

默认值

描述

qSeqLen

std::vector<int32_t>

-

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

maxSeqLen

int32_t

4096

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

输入

参数

维度

数据类型

格式

描述

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一致。