未验证 提交 de8a21a4 编写于 作者: Q Qi Li 提交者: GitHub

new api of elu gelu relu logsigmoid, test=develop (#2407)

上级 411cf975
......@@ -5,4 +5,8 @@ activation
.. toctree::
:maxdepth: 1
activation/ELU.rst
activation/GELU.rst
activation/Hardshrink.rst
activation/ReLU.rst
activation/LogSigmoid.rst
.. _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]
......@@ -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
.. _cn_api_nn_ELU:
ELU
-------------------------------
.. py:class:: paddle.nn.ELU(alpha=1.0, name=None)
ELU激活层(ELU Activation Operator)
根据 `Exponential Linear Units <https://arxiv.org/abs/1511.07289>` 对输入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 ]]
.. _cn_api_nn_GELU:
GELU
-------------------------------
.. py:class:: paddle.nn.GELU(approximate=False, name=None)
GELU激活层(GELU Activation Operator)
更多细节请参考 `Gaussian Error Linear Units <https://arxiv.org/abs/1606.08415>`。
如果使用近似计算:
.. 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]
.. _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]
.. _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.]
......@@ -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 <https://arxiv.org/abs/1511.07289>` 对输入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 ]]
......@@ -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 <https://arxiv.org/abs/1606.08415>`_ 。
如果使用近似计算:
.. 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]
......@@ -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]
.. _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.]
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册