| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 13 天前 | ||
| 5 个月前 | ||
| 2 个月前 |
BidirectionLSTMV2
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | × |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | × |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | × |
功能说明
-
算子功能:LSTM(Long Short-Term Memory,长短时记忆)网络是一种特殊的循环神经网络(RNN)模型。进行LSTM网络计算,接收输入序列和初始状态,返回输出序列和最终状态。相比aclnnBidirectionLSTM新增了Sequence不等长场景。
-
计算公式:
ft=sigm(Wf[ht−1,xt]+bf)it=sigm(Wi[ht−1,xt]+bi)ot=sigm(Wo[ht−1,xt]+bo)c~t=tanh(Wc[ht−1,xt]+bc)ct=ft⊙ct−1+it⊙c~tcot=tanh(ct)ht=ot⊙cotf_t =sigm(W_f[h_{t-1}, x_t] + b_f)\\ i_t =sigm(W_i[h_{t-1}, x_t] + b_i)\\ o_t =sigm(W_o[h_{t-1}, x_t] + b_o)\\ \tilde{c}_t =tanh(W_c[h_{t-1}, x_t] + b_c)\\ c_t =f_t ⊙ c_{t-1} + i_t ⊙ \tilde{c}_t\\ c_{o}^{t} =tanh(c_t)\\ h_t =o_t ⊙ c_{o}^{t}\\
- xt∈Rdx_t ∈ R^{d}:LSTM单元的输入向量。
- ft∈(0,1)hf_t ∈ (0, 1)^{h}:遗忘门激活向量。
- it∈(0,1)hi_t ∈ (0, 1)^{h}:输入门、更新门激活向量。
- ot∈(0,1)ho_t ∈ (0, 1)^{h}:输出门激活向量。
- hi∈(−1,1)hh_i ∈ (-1, 1)^{h}:隐藏状态向量,也称为LSTM单元的输出向量。
- c~t∈(−1,1)h\tilde{c}_t ∈ (-1, 1)^{h}:cell输入激活向量。
- ct∈Rhc_t ∈ R^{h}:cell状态向量。
- W∈Rh×d,(U∈Rh×h)∩(b∈Rh)W ∈ R^{h×d},(U ∈ R^{h×h})∩(b ∈ R^{h}):训练中需要学习的权重矩阵和偏置向量参数。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | LSTM单元的输入向量,公式中的x。 | FLOAT16 | ND |
| initH | 输入 | 初始化hidden状态,公式中的h。 | FLOAT16 | ND |
| initC | 输入 | 初始化cell状态,公式中的c。 | FLOAT16 | ND |
| wIh | 输入 | input-hidden权重,公式中的W。 | FLOAT16 | ND |
| wHh | 输入 | hidden-hidden权重,公式中的W。 | FLOAT16 | ND |
| bIhOptional | 输入 | input-hidden偏移,公式中的b。 | FLOAT16 | ND |
| bHhOptional | 输入 | hidden-hidden偏移,公式中的b。 | FLOAT16 | ND |
| wIhReverseOptional | 输入 | 逆向input-hidden权重,公式中的W。 | FLOAT16 | ND |
| wHhReverseOptional | 输入 | 逆向hidden-hidden权重,公式中的W。 | FLOAT16 | ND |
| bIhReverseOptional | 输入 | 逆向input-hidden偏移,公式中的b。 | FLOAT16 | ND |
| bHhReverseOptional | 输入 | 逆向hidden-hidden偏移,公式中的b。 | FLOAT16 | ND |
| batchSizeOptional | 输入 | 每轮迭代实际参与计算的batch_size。 | INT | ND |
| numLayers | 属性 | 表示LSTM层数。当前只支持1。 | INT | - |
| isbias | 属性 | 表示是否有bias。 | BOOL | - |
| batchFirst | 属性 | 表示batch是否是第一维。当前只支持false。 | BOOL | - |
| bidirection | 属性 | 表示是否是双向。 | BOOL | - |
| packed | 属性 | 表示输入x是否压缩。仅在batchSizeOptional不为空时生效。 | BOOL | - |
| yOut | 输出 | LSTM单元的输出向量。 | FLOAT16 | ND |
| outputHOut | 输出 | 最终hidden状态,公式中的h。 | FLOAT16 | ND |
| outputCOut | 输出 | 最终cell状态,公式中的c。 | FLOAT16 | ND |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_bidirection_lstmv2 | 通过aclnnBidirectionLSTMV2接口方式调用BidirectionLSTMV2算子。 |