mindspore.ops.gelu

查看源文件
mindspore.ops.gelu(input, approximate='none')[源代码]

高斯误差线性单元激活函数。

GeLU的详细描述请参考 Gaussian Error Linear Units (GELUs) 。 相关应用可参考 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

approximatenone ,GELU的定义如下:

GELU(xi)=xiP(X<xi),

其中 P 是标准高斯分布的累积分布函数, xi 是输入的元素。

approximatetanh ,GELU的定义如下:

GELU(xi)=0.5xi(1+tanh((2/π)(xi+0.044715xi3)))

GELU函数图:

../../_images/GELU.png
参数:
  • input (Tensor) - 用于计算GELU的Tensor。数据类型为float16、float32或float64。

  • approximate (str,可选) - GELU近似算法。可选值为 'none''tanh' 。默认值: 'none'

返回:

Tensor,具有与 input 相同的数据类型和shape。

异常:
  • TypeError - input 的数据类型不是Tensor。

  • TypeError - input 的数据类型不是bfloat16、float16、float32或float64。

  • ValueError - approximate 的值不是 nonetanh

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> from mindspore import Tensor, ops
>>> x = Tensor([1.0, 2.0, 3.0], mindspore.float32)
>>> result = ops.gelu(x, approximate='none')
>>> print(result)
[0.8413447 1.9544997 2.9959505]