昇腾社区首页
中文
注册

UnpadWithHiddenStateOperation

产品支持情况

产品

是否支持

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

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

Atlas 训练系列产品

x

Atlas 推理系列产品

x

Atlas 200I/500 A2 推理产品

x

功能说明

UnpadWithHiddenState的作用是将填充后的序列恢复成原始的变长序列。

定义

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

参数列表

成员名称

类型

默认值

描述

qSeqLen

std::vector<int32_t>

-

每个batch实际SeqLen的值,元素个数为batchSize。batchSize的值最大不超过32。

maxSeqLen

int32_t

-

最大SeqLen值。取值不超过4096。

rsv[12]

uint8_t

{0}

预留参数。

输入

参数

维度

数据类型

格式

描述

x

[batchSize, maxSeqLen, hiddenSize]

float16

ND

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

输出

参数

维度

数据类型

格式

描述

output

[nTokens, hiddenSize]

float16

ND

unpad后,不带冗余的tensor,与pad输入shape一致。nTokens为qSeqLen数组的元素和。

约束说明

接口调用示例

qSeqlen ={2,3,1} //每个batch的实际输入长度

maxSeqlen=4 //qSeqlen中最大的输入长度

x的shape为(3,4,5)//batchSize为3,最大输入长度为4,隐藏层大小为5

x=[
[1,2,3,4,5
6,7,8,9,10
0,0,0,0,0
0,0,0,0,0],
[11,12,13,14,15
16,17,18,19,20
21,22,23,24,25
0,0,0,0,0],
[26,27,28,29,30
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0]]

output的shape为(6,5) //总tokens数为6 隐藏层大小为5

x=[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,30]