MhcPostBackward

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • 算子功能:mhc_post基于一系列计算对MHC(Manifold-Constrained Hyper-Connection)架构中上一层输出htouth_{t}^{out}进行Post Mapping,对上一层的输入xjx_j进行ResMapping,然后对二者进行残差连接,得到下一层的输入xl+1x_{l+1}。该算子实现前述过程的反向功能。

  • 计算公式:

    grad_x=Hlres×grad_ygrad_h_res=xl×grad_yTgrad\_x = H_{l}^{res} \times grad\_y\\ grad\_h\_res = x_{l} \times {grad\_y}^{T}

    grad_h_out=(grad_y∗(Hlpost.unsqueeze(−1))).sum(dim=−2)grad_h_post=(grad_y∗(hlout.unsqueeze(−2))).sum(dim=−1)grad\_h\_out=({grad\_y} * (H_{l}^{post}.unsqueeze(-1))).sum(dim=-2)\\ grad\_h\_post=({grad\_y} * (h_{l}^{out}.unsqueeze(-2))).sum(dim=-1)

参数说明

参数名 输入/输出 描述 数据类型 数据格式
grad_y 输入 待计算的数据,表示网络中MHC层的输入数据 FLOAT16、BFLOAT16 ND
x 输入 待计算的数据,表示网络中MHC层的输入数据 FLOAT16、BFLOAT16 ND
h_res 输入 mHC的h_res变换矩阵 FLOAT32 ND
h_out 输入 Atten/MLP层的输出 FLOAT16、BFLOAT16 ND
h_post 输入 MHC的h_post变换矩阵 FLOAT32 ND
grad_x 输出 网络中MHC层的输入数据x的梯度 FLOAT16、BFLOAT16 ND
grad_h_res 输出 网络中MHC层的输入数据h_res的梯度 FLOAT32 ND
grad_h_out 输出 网络中MHC层的输入数据h_out的梯度 FLOAT16、BFLOAT16 ND
grad_h_post 输出 网络中MHC层的输入数据h_post的梯度 FLOAT32 ND

约束说明

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_mhc_post_backward 通过aclnnMhcpostBackward接口方式调用算子。