文件最后提交记录最后更新时间
2 天前
20 天前
5 天前
20 天前
5 个月前
20 天前
3 个月前
2 天前
5 个月前
3 天前
README

GeluGrad

产品支持情况

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

功能说明

  • 接口功能:Gelu激活函数的反向传播算子,用于计算Gelu激活函数的梯度。

  • 计算公式:

    • 前向计算公式

    out=GELU(self)=self×Φ(self)=0.5∗self∗(1+tanh(2/π∗(self+0.044715∗self3)))out=GELU(self)=self × Φ(self)=0.5 * self * (1 + tanh( \sqrt{2 / \pi} * (self + 0.044715 * self^{3})))

    • 反向梯度公式

    out=d(GELU)dx=dy⋅[0.5(1+tanh⁡(inner))⏟left_derivative+0.5x⋅(1−tanh⁡2(inner))⋅β(1+3⋅0.044715x2)⏟right_derivative] out = \frac{d(\text{GELU})}{dx} = dy \cdot \left[ \underbrace{0.5(1 + \tanh(\text{inner}))}_{\text{left\_derivative}}+ \underbrace{0.5x\cdot (1-\tanh^2(\text{inner})) \cdot \beta(1+3\cdot 0.044715x^2)}_{\text{right\_derivative}}\right]

    • 其中:

    β=2π,inner=β(x+0.044715x3) \beta = \sqrt{\frac{2}{\pi}},\quad \text{inner}= \beta \left(x+0.044715x^3 \right)

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
dy 输入 这是损失函数对GELU输出的梯度,公式中的dy。 FLOAT、FLOAT16、BFLOAT16 ND
x 输入 这是函数的输入,公式中的x。 FLOAT、FLOAT16、BFLOAT16 ND
y 输入 GELU函数的输出,即GELU(x)。 FLOAT、FLOAT16、BFLOAT16 ND
z 输出 表示gelu_grad函数的输出,对应公式中的out。 FLOAT、FLOAT16、BFLOAT16 ND

约束说明

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_gelu_backward 通过aclnnGeluBackward接口方式调用GeluGrad算子。