FilesLast commitLast update
17 days ago
3 months ago
2 months ago
17 days ago
17 days ago
17 days ago
17 days ago
17 days ago
README

AsinGrad

产品支持情况

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

功能说明

  • 算子功能:AsinGrad是Asin(反正弦)算子的梯度算子,用于深度学习框架自动微分的反向传播阶段。给定正向输入y和上游梯度dy,计算输出梯度z。

  • 计算公式:

    zi=dyi1−yi2z_i = \frac{dy_i}{\sqrt{1 - y_i^2}}

    其中:

    • y:正向Asin算子的输入tensor,值域 [-1, 1]
    • dy:上游传播的梯度(grad_output)
    • z:计算得到的输入梯度(grad_input)

参数说明

参数名 输入/输出 描述 数据类型 数据格式
y 输入 正向Asin算子的输入tensor,对应公式中的y。支持0-8维tensor,支持空tensor。shape需要与dy的shape完全相同。 BFLOAT16、FLOAT16、FLOAT32 ND
dy 输入 上游传播的梯度tensor,对应公式中的dy。支持0-8维tensor,支持空tensor。shape需要与y的shape完全相同。 BFLOAT16、FLOAT16、FLOAT32 ND
z 输出 计算得到的输入梯度tensor,对应公式中的z。shape与输入相同,数据类型与输入一致。 BFLOAT16、FLOAT16、FLOAT32 ND

约束说明

  • y和dy的数据类型必须一致,z的数据类型与y/dy一致,仅支持FLOAT、FLOAT16、BFLOAT16。
  • y和dy的shape必须完全相同,不支持广播。
  • 支持0-8维tensor,支持空tensor(0元素)。
  • 仅支持ND数据格式。输入输出配置了自动连续化(AutoContiguous),非连续Tensor由框架转换为连续Tensor后进入Kernel。
  • y的值域应在 [-1, 1] 范围内。当 |y| = 1时,计算结果为inf;当 |y| > 1时,计算结果为NaN。
  • FLOAT16、BFLOAT16均转换为FLOAT32进行中间计算,计算结果再转换回输入数据类型;FLOAT32直接进行FLOAT32计算。

调用说明

调用方式 样例代码 说明
GE图模式 test_geir_asin_grad.cpp 通过GE图模式调用AsinGrad算子,算子IR定义见asin_grad_proto.h。