mindspore/docs/api/api_python/nn/mindspore.nn.GELU.rst

35 lines
1.3 KiB
ReStructuredText
Raw Normal View History

2021-12-04 13:55:42 +08:00
mindspore.nn.GELU
==================
2021-12-30 19:27:21 +08:00
.. py:class:: mindspore.nn.GELU(approximate=True)
2021-12-04 13:55:42 +08:00
高斯误差线性单元激活函数Gaussian error linear unit activation function
对输入的每个元素计算GELU。
2022-09-06 16:52:57 +08:00
输入是任意有效形状的Tensor。
2021-12-04 13:55:42 +08:00
GELU的定义如下
2021-12-04 20:36:47 +08:00
2021-12-04 13:55:42 +08:00
.. math::
GELU(x_i) = x_i*P(X < x_i),
其中 :math:`P` 是标准高斯分布的累积分布函数, :math:`x_i` 是输入的元素。
GELU相关图参见 `GELU <https://en.wikipedia.org/wiki/Activation_function#/media/File:Activation_gelu.png>`_
2022-07-22 16:25:38 +08:00
参数:
2022-09-02 16:46:41 +08:00
- **approximate** (bool) - 是否启用approximation默认值True。如果approximate的值为True则高斯误差线性激活函数为
2021-12-30 19:27:21 +08:00
2022-08-04 15:00:55 +08:00
:math:`0.5 * x * (1 + tanh(sqrt(2 / pi) * (x + 0.044715 * x^3)))`
2021-12-30 19:27:21 +08:00
2022-08-04 15:00:55 +08:00
否则为: :math:`x * P(X <= x) = 0.5 * x * (1 + erf(x / sqrt(2)))`其中P(X) ~ N(0, 1) 。
2021-12-30 19:27:21 +08:00
2022-07-22 16:25:38 +08:00
输入:
2022-09-02 16:46:41 +08:00
- **x** (Tensor) - 用于计算GELU的Tensor。数据类型为float16或float32。shape是 :math:`(N,*)` :math:`*` 表示任意的附加维度数。
2021-12-04 13:55:42 +08:00
2022-07-22 16:25:38 +08:00
输出:
Tensor具有与 `x` 相同的数据类型和shape。
2021-12-04 13:55:42 +08:00
2022-07-22 16:25:38 +08:00
异常:
- **TypeError** - `x` 的数据类型既不是float16也不是float32。