aclnnThnnFusedLstmCellBackward
产品支持情况
功能说明
- 算子功能:LSTMCell中四个门中matmul后剩余计算的反向传播,计算正向输出四个门激活前的值gates、输入cx、偏置b的梯度。
- 计算公式:
变量定义
- 输入梯度: (
[object Object]), ([object Object]) - 前向缓存: (各门激活值
[object Object]), ([object Object]), ([object Object]) - 输出梯度: (存入
[object Object]), ([object Object])
第一阶段:中间梯度与状态回传
首先计算隐藏状态对细胞状态的贡献,并汇总得到当前时刻细胞的总梯度 :
第二阶段:门控分量梯度 (Pre-activation)
根据代码逻辑,各门控在进入激活函数前的梯度 计算如下:
第三阶段:参数梯度 (db)
**1. 偏置梯度 (db):**对 Batch 维度()进行求和:
函数原型
每个算子分为,必须先调用“aclnnThnnFusedLstmCellBackwardGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnThnnFusedLstmCellBackward”接口执行计算。
[object Object]
[object Object]
aclnnThnnFusedLstmCellBackwardGetWorkspaceSize
aclnnThnnFusedLstmCellBackward
约束说明
- 确定性计算:
- aclnnThnnFusedLstmCellBackward默认确定性实现。
- 边界值场景说明:
- 当输入是Inf时,输出为NAN。
- 当输入是NaN时,输出为NaN。
调用示例
[object Object]