昇腾社区首页
中文
注册
开发者
下载

torch_npu.npu_gelu

须知:[object Object] 在NPU环境下使用Torch原生接口gelu时,approximate参数不起作用且默认为tanh,如果需要approximate的默认值设定为None或者区分不同的approximate方法需要使用此接口。

产品支持情况

产品 是否支持
[object Object]Atlas 推理系列产品[object Object]
[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]
[object Object]Atlas 训练系列产品[object Object]

功能说明

  • API功能:计算高斯误差线性单元的激活函数。

  • 计算公式:

    Gaussian Error Linear Unit(GELU)的表达式为:

    GELU(x)=xΦ(x)\text{GELU}(x) = x \cdot \Phi(x)

    Φ(x)\Phi(x)是Gaussian Distribution的CDF(Cumulative Distribution Function),表达式为:

    Φ(x)=P(Xx)=12[1+erf(x2)]\Phi(x) = P(X \leq x) = \frac{1}{2} \left[ 1 + \text{erf}\left(\frac{x}{\sqrt{2}}\right) \right]

    此时对应approximate="none",若采用approximate="tanh",则将 erf()\text{erf}(\cdot) 替换为 tanh()\tanh(\cdot) 的近似形式。

函数原型

[object Object]

参数说明

  • input (Tensor):必选参数,对应公式中的xx,待进行npu_gelu计算的入参,数据格式支持NDND,支持非连续的Tensor。输入最大支持8维。

    • [object Object]Atlas 训练系列产品[object Object]:数据类型支持float16float32
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:数据类型支持float32float16bfloat16
    • [object Object]Atlas 推理系列产品[object Object]:数据类型支持float16float32
  • approximate (Tensor):可选参数,字符串类型,计算使用的激活函数模式,可配置为none或者tanh。其中none代表使用erf模式,tanh代表使用tanh模式。

返回值说明

Tensor

数据类型必须和input一样,数据格式支持NDND,shape必须和input一样,支持非连续的Tensor。

约束说明

  • 该接口支持图模式。
  • input输入不能为None。

调用示例

  • 单算子模式调用

    [object Object]
  • 图模式调用

    [object Object]