PRelu_cn.rst 2.2 KB
Newer Older
C
chentianyu03 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
.. _cn_api_fluid_dygraph_PRelu:

PRelu
-------------------------------

.. py:class:: paddle.fluid.dygraph.PRelu(mode, input_shape=None, param_attr=None, dtype="float32")




该接口用于构建 ``PRelu`` 类的一个可调用对象,具体用法参照 ``代码示例`` 。其中实现了 ``PRelu`` 激活函数的三种激活方式。

计算公式如下:

.. math::
    y = max(0, x) + \alpha min(0, x)


参数:
    - **mode** (str) - 权重共享模式。共提供三种激活方式:

    .. code-block:: text

        all:所有元素使用同一个alpha值
        channel:在同一个通道中的元素使用同一个alpha值
        element:每一个元素有一个独立的alpha值

    - **channel** (int,可选) - 通道数。该参数在mode参数为"channel"时是必须的。默认为None。
    - **input_shape** (int 或 list 或 tuple,可选) - 输入的维度。该参数在mode参数为"element"时是必须的。默认为None。
    - **param_attr** (ParamAttr, 可选) - 指定权重参数属性的对象。默认值为None,表示使用默认的权重参数属性。具体用法请参见 :ref:`cn_api_fluid_ParamAttr` 。
    - **dtype** (str, 可选) - 数据类型,可以为"float32"或"float64"。默认值:"float32"。

返回:无

**代码示例:**

.. code-block:: python

    import paddle.fluid as fluid
    from paddle.fluid.dygraph.base import to_variable
    import numpy as np

    inp_np = np.ones([5, 200, 100, 100]).astype('float32')
    with fluid.dygraph.guard():
        inp_np = to_variable(inp_np)
        prelu0 = fluid.PRelu(
           mode='all',
           param_attr=fluid.ParamAttr(initializer=fluid.initializer.Constant(1.0)))
        dy_rlt0 = prelu0(inp_np)
        prelu1 = fluid.PRelu(
           mode='channel',
           channel=200,
           param_attr=fluid.ParamAttr(initializer=fluid.initializer.Constant(1.0)))
        dy_rlt1 = prelu1(inp_np)
        prelu2 = fluid.PRelu(
           mode='element',
           input_shape=inp_np.shape,
           param_attr=fluid.ParamAttr(initializer=fluid.initializer.Constant(1.0)))
        dy_rlt2 = prelu2(inp_np)

属性
::::::::::::
.. py:attribute:: weight

本层的可学习参数,类型为 ``Parameter``