From de8a21a4ad43314df61216e491c24be14f82c9c7 Mon Sep 17 00:00:00 2001 From: Qi Li Date: Wed, 19 Aug 2020 17:34:29 +0800 Subject: [PATCH] new api of elu gelu relu logsigmoid, test=develop (#2407) --- doc/fluid/api/nn/activation.rst | 4 ++ doc/fluid/api_cn/nn_cn/ReLU_cn.rst | 39 --------------- doc/fluid/api_cn/nn_cn/activation_cn.rst | 4 ++ .../api_cn/nn_cn/activation_cn/ELU_cn.rst | 41 +++++++++++++++ .../api_cn/nn_cn/activation_cn/GELU_cn.rst | 50 +++++++++++++++++++ .../nn_cn/activation_cn/LogSigmoid_cn.rst | 36 +++++++++++++ .../api_cn/nn_cn/activation_cn/ReLU_cn.rst | 36 +++++++++++++ doc/fluid/api_cn/nn_cn/elu_cn.rst | 39 ++++++++++++++- doc/fluid/api_cn/nn_cn/gelu_cn.rst | 43 +++++++++++++++- doc/fluid/api_cn/nn_cn/logsigmoid_cn.rst | 32 +++++++++++- doc/fluid/api_cn/nn_cn/relu_cn.rst | 38 ++++++++++++++ 11 files changed, 320 insertions(+), 42 deletions(-) delete mode 100644 doc/fluid/api_cn/nn_cn/ReLU_cn.rst create mode 100644 doc/fluid/api_cn/nn_cn/activation_cn/ELU_cn.rst create mode 100644 doc/fluid/api_cn/nn_cn/activation_cn/GELU_cn.rst create mode 100644 doc/fluid/api_cn/nn_cn/activation_cn/LogSigmoid_cn.rst create mode 100644 doc/fluid/api_cn/nn_cn/activation_cn/ReLU_cn.rst create mode 100644 doc/fluid/api_cn/nn_cn/relu_cn.rst diff --git a/doc/fluid/api/nn/activation.rst b/doc/fluid/api/nn/activation.rst index 76dfe5956..917e1abd4 100644 --- a/doc/fluid/api/nn/activation.rst +++ b/doc/fluid/api/nn/activation.rst @@ -5,4 +5,8 @@ activation .. toctree:: :maxdepth: 1 + activation/ELU.rst + activation/GELU.rst activation/Hardshrink.rst + activation/ReLU.rst + activation/LogSigmoid.rst diff --git a/doc/fluid/api_cn/nn_cn/ReLU_cn.rst b/doc/fluid/api_cn/nn_cn/ReLU_cn.rst deleted file mode 100644 index 2e8640fa3..000000000 --- a/doc/fluid/api_cn/nn_cn/ReLU_cn.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. _cn_api_nn_ReLU: - -ReLU -------------------------------- -.. py:class:: paddle.nn.ReLU(inplace=False) - -:alias_main: paddle.nn.ReLU -:alias: paddle.nn.ReLU,paddle.nn.layer.ReLU,paddle.nn.layer.activation.ReLU -:update_api: paddle.fluid.layers.relu - - - - -**ReLU(Rectified Linear Unit)激活层:** - -.. math:: - - \\Out = max(X, 0)\\ - -其中,:math:`X` 为输入的 Tensor - -参数: - - **inplace** (bool,可选)- 如果 ``inplace`` 为 ``True``,则 ``ReLU`` 的输入和输出是同一个变量,否则 ``ReLU`` 的输入和输出是不同的变量。默认值:``False``。请注意,如果 ``ReLU`` 的输入同时是其它OP的输入,则 ``inplace`` 必须为False。 - -返回:无 - -**代码示例** - -.. code-block:: python - - import paddle.fluid as fluid - import paddle.nn as nn - import numpy as np - - data = np.array([-2, 0, 1]).astype('float32') - my_relu = nn.ReLU() - with fluid.dygraph.guard(): - data = fluid.dygraph.to_variable(data) - res = my_relu(data) # [0, 0, 1] diff --git a/doc/fluid/api_cn/nn_cn/activation_cn.rst b/doc/fluid/api_cn/nn_cn/activation_cn.rst index 1737e4472..4ba1ca093 100644 --- a/doc/fluid/api_cn/nn_cn/activation_cn.rst +++ b/doc/fluid/api_cn/nn_cn/activation_cn.rst @@ -8,7 +8,11 @@ activation .. toctree:: :maxdepth: 1 + activation_cn/ELU_cn.rst + activation_cn/GELU_cn.rst activation_cn/Hardshrink_cn.rst + activation_cn/ReLU_cn.rst activation_cn/LeakyReLU_cn.rst activation_cn/LogSoftmax_cn.rst activation_cn/Sigmoid_cn.rst + activation_cn/LogSigmoid_cn.rst diff --git a/doc/fluid/api_cn/nn_cn/activation_cn/ELU_cn.rst b/doc/fluid/api_cn/nn_cn/activation_cn/ELU_cn.rst new file mode 100644 index 000000000..8a2bb7bd2 --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/activation_cn/ELU_cn.rst @@ -0,0 +1,41 @@ +.. _cn_api_nn_ELU: + +ELU +------------------------------- +.. py:class:: paddle.nn.ELU(alpha=1.0, name=None) + +ELU激活层(ELU Activation Operator) + +根据 `Exponential Linear Units ` 对输入Tensor中每个元素应用以下计算。 + +.. math:: + + ELU(x) = max(0, x) + min(0, \alpha * (e^{x} − 1)) + +其中,:math:`x` 为输入的 Tensor + +参数 +:::::::::: + - alpha (float, 可选) - ELU的alpha值,默认值为1.0。 + - name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +形状: +:::::::::: + - input: 任意形状的Tensor。 + - output: 和input具有相同形状的Tensor。 + +代码示例 +::::::::: + +.. code-block:: python + + import paddle + import numpy as np + + paddle.disable_static() + + x = paddle.to_tensor(np.array([[-1, 6],[1, 15.6]])) + m = paddle.nn.ELU(0.2) + out = m(x) + # [[-0.12642411 6. ] + # [ 1. 15.6 ]] diff --git a/doc/fluid/api_cn/nn_cn/activation_cn/GELU_cn.rst b/doc/fluid/api_cn/nn_cn/activation_cn/GELU_cn.rst new file mode 100644 index 000000000..bd04b4030 --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/activation_cn/GELU_cn.rst @@ -0,0 +1,50 @@ +.. _cn_api_nn_GELU: + +GELU +------------------------------- +.. py:class:: paddle.nn.GELU(approximate=False, name=None) + +GELU激活层(GELU Activation Operator) + +更多细节请参考 `Gaussian Error Linear Units `。 + +如果使用近似计算: + +.. math:: + GELU(x) = 0.5 * x * (1 + tanh(\sqrt{\frac{2}{\pi}} * (x + 0.044715x^{3}))) + +如果不使用近似计算: + +.. math:: + GELU(x) = 0.5 * x * (1 + erf(\frac{x}{\sqrt{2}})) + + +其中,:math:`x` 为输入的 Tensor + +参数 +:::::::::: + - approximate (bool, 可选) - 是否使用近似计算,默认值为 False,即不使用近似计算。 + - name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +形状: +:::::::::: + - input: 任意形状的Tensor。 + - output: 和input具有相同形状的Tensor。 + +代码示例 +::::::::: + +.. code-block:: python + + import paddle + import numpy as np + + paddle.disable_static() + + x = paddle.to_tensor(np.array([[-1, 0.5],[1, 1.5]])) + + m = paddle.nn.GELU() + out = m(x) # [-0.158655 0.345731 0.841345 1.39979] + + m = paddle.nn.GELU(True) + out = m(x) # [-0.158808 0.345714 0.841192 1.39957] diff --git a/doc/fluid/api_cn/nn_cn/activation_cn/LogSigmoid_cn.rst b/doc/fluid/api_cn/nn_cn/activation_cn/LogSigmoid_cn.rst new file mode 100644 index 000000000..321eb1d9e --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/activation_cn/LogSigmoid_cn.rst @@ -0,0 +1,36 @@ +.. _cn_api_nn_LogSigmoid: + +LogSigmoid +------------------------------- +.. py:class:: paddle.nn.LogSigmoid(name=None) + +Logsigmoid激活层。计算公式如下: + +.. math:: + + Logsigmoid(x) = \log \frac{1}{1 + e^{-x}} + +其中,:math:`x` 为输入的 Tensor + +参数 +:::::::::: + - name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +形状: +:::::::::: + - input: 任意形状的Tensor。 + - output: 和input具有相同形状的Tensor。 + +代码示例 +::::::::: + +.. code-block:: python + + import paddle + import numpy as np + + paddle.disable_static() + + x = paddle.to_tensor(np.array([1.0, 2.0, 3.0, 4.0])) + m = paddle.nn.LogSigmoid() + out = m(x) # [0.7310586, 0.880797, 0.95257413, 0.98201376] diff --git a/doc/fluid/api_cn/nn_cn/activation_cn/ReLU_cn.rst b/doc/fluid/api_cn/nn_cn/activation_cn/ReLU_cn.rst new file mode 100644 index 000000000..ac39225bf --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/activation_cn/ReLU_cn.rst @@ -0,0 +1,36 @@ +.. _cn_api_nn_ReLU: + +ReLU +------------------------------- +.. py:class:: paddle.nn.ReLU(name=None) + +ReLU激活层(Rectified Linear Unit)。计算公式如下: + +.. math:: + + ReLU(x) = max(0, x) + +其中,:math:`x` 为输入的 Tensor + +参数 +:::::::::: + - name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +形状: +:::::::::: + - input: 任意形状的Tensor。 + - output: 和input具有相同形状的Tensor。 + +代码示例 +::::::::: + +.. code-block:: python + + import paddle + import numpy as np + + paddle.disable_static() + + x = paddle.to_tensor(np.array([-2, 0, 1]).astype('float32')) + m = paddle.nn.ReLU() + out = m(x) # [0., 0., 1.] diff --git a/doc/fluid/api_cn/nn_cn/elu_cn.rst b/doc/fluid/api_cn/nn_cn/elu_cn.rst index 59b3119aa..2006e7025 100644 --- a/doc/fluid/api_cn/nn_cn/elu_cn.rst +++ b/doc/fluid/api_cn/nn_cn/elu_cn.rst @@ -2,6 +2,43 @@ elu ------------------------------- -:doc_source: paddle.fluid.layers.elu + +.. py:function:: paddle.nn.functional.elu(x, alpha=1.0, name=None) + +elu激活层(ELU Activation Operator) + +根据 `Exponential Linear Units ` 对输入Tensor中每个元素应用以下计算。 + +.. math:: + + elu(x) = max(0, x) + min(0, \alpha * (e^{x} − 1)) + +其中,:math:`x` 为输入的 Tensor + +参数: +:::::::::: + - x (Tensor) - 输入的 ``Tensor`` ,数据类型为:float32、float64。 + - alpha (float, 可选) - elu的alpha值,默认值为1.0。 + - name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +返回 +:::::::::: + ``Tensor`` ,数据类型和形状同 ``x`` 一致。 + +代码示例 +:::::::::: + +.. code-block:: python + + import paddle + import paddle.nn.functional as F + import numpy as np + + paddle.disable_static() + + x = paddle.to_tensor(np.array([[-1,6],[1,15.6]])) + out = F.elu(x, alpha=0.2) + # [[-0.12642411 6. ] + # [ 1. 15.6 ]] diff --git a/doc/fluid/api_cn/nn_cn/gelu_cn.rst b/doc/fluid/api_cn/nn_cn/gelu_cn.rst index b91b33eef..586cd3677 100644 --- a/doc/fluid/api_cn/nn_cn/gelu_cn.rst +++ b/doc/fluid/api_cn/nn_cn/gelu_cn.rst @@ -2,6 +2,47 @@ gelu ------------------------------- -:doc_source: paddle.fluid.layers.gelu +.. py:function:: paddle.nn.functional.gelu(x, approximate=False, name=None) + +gelu激活层(GELU Activation Operator) + +逐元素计算 gelu激活函数。更多细节请参考 `Gaussian Error Linear Units `_ 。 + +如果使用近似计算: + +.. math:: + gelu(x) = 0.5 * x * (1 + tanh(\sqrt{\frac{2}{\pi}} * (x + 0.044715x^{3}))) + +如果不使用近似计算: + +.. math:: + gelu(x) = 0.5 * x * (1 + erf(\frac{x}{\sqrt{2}})) + +其中,:math:`x` 为输入的 Tensor + +参数: +:::::::::: + - x (Tensor) - 输入的 ``Tensor`` ,数据类型为:float32、float64。 + - approximate (bool, 可选) - 是否使用近似计算,默认值为 False,表示不使用近似计算。 + - name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +返回 +:::::::::: + ``Tensor`` ,数据类型和形状同 ``x`` 一致。 + +代码示例 +:::::::::: + +.. code-block:: python + + import paddle + import paddle.nn.functional as F + import numpy as np + + paddle.disable_static() + + x = paddle.to_tensor(np.array([[-1, 0.5],[1, 1.5]])) + out1 = F.gelu(x) # [-0.158655 0.345731 0.841345 1.39979] + out2 = F.gelu(x, True) # [-0.158808 0.345714 0.841192 1.39957] diff --git a/doc/fluid/api_cn/nn_cn/logsigmoid_cn.rst b/doc/fluid/api_cn/nn_cn/logsigmoid_cn.rst index afe57610d..0bbb5f3ca 100644 --- a/doc/fluid/api_cn/nn_cn/logsigmoid_cn.rst +++ b/doc/fluid/api_cn/nn_cn/logsigmoid_cn.rst @@ -2,6 +2,36 @@ logsigmoid ------------------------------- -:doc_source: paddle.fluid.layers.logsigmoid +.. py:function:: paddle.nn.functional.logsigmoid(x, name=None) +logsigmoid激活层。计算公式如下: + +.. math:: + + logsigmoid(x) = \log \frac{1}{1 + e^{-x}} + +其中,:math:`x` 为输入的 Tensor + +参数 +:::::::::: + - x (Tensor) - 输入的 ``Tensor`` ,数据类型为:float32、float64。 + - name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +返回 +:::::::::: + ``Tensor`` ,数据类型和形状同 ``x`` 一致。 + +代码示例 +:::::::::: + +.. code-block:: python + + import paddle + import paddle.nn.functional as F + import numpy as np + + paddle.disable_static() + + x = paddle.to_tensor(np.array([1.0, 2.0, 3.0, 4.0])) + out = F.logsigmoid(x) # [0.7310586, 0.880797, 0.95257413, 0.98201376] diff --git a/doc/fluid/api_cn/nn_cn/relu_cn.rst b/doc/fluid/api_cn/nn_cn/relu_cn.rst new file mode 100644 index 000000000..447d0bb01 --- /dev/null +++ b/doc/fluid/api_cn/nn_cn/relu_cn.rst @@ -0,0 +1,38 @@ +.. _cn_api_nn_cn_relu: + +relu +------------------------------- + +.. py:function:: paddle.nn.functional.relu(x, name=None) + +relu激活层(Rectified Linear Unit)。计算公式如下: + +.. math:: + + relu(x) = max(0, x) + +其中,:math:`x` 为输入的 Tensor + + +参数 +:::::::::: + - x (Tensor) - 输入的 ``Tensor`` ,数据类型为:float32、float64。 + - name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。 + +返回 +:::::::::: + ``Tensor`` ,数据类型和形状同 ``x`` 一致。 + +代码示例 +:::::::::: + +.. code-block:: python + + import paddle + import paddle.nn.functional as F + import numpy as np + + paddle.disable_static() + + x = paddle.to_tensor(np.array([-2, 0, 1]).astype('float32')) + out = F.relu(x) # [0., 0., 1.] -- GitLab