prelu

paddle.nn.functional. prelu ( x, weight, data_format='NCHW', name=None ) [源代码]

prelu 激活。计算公式如下:

\[prelu(x) = max(0, x) + weight * min(0, x)\]

其中,\(x\) 和 weight 为输入的 Tensor

参数

  • x (Tensor) - 输入的 Tensor,数据类型为:float32、float64。别名 input。

  • weight (Tensor) - 可训练参数,数据类型同 x 一致,形状支持:[]、[1] 或者 [in],其中 in 为输入 x 的通道数。

  • name (str|None,可选) - 具体用法请参见 api_guide_Name,一般无需设置,默认值为 None。

  • data_format (str,可选) - 指定输入的数据格式,可以是 "NC", "NCL", "NCHW", "NCDHW", "NLC", "NHWC" 或 "NDHWC"。默认值:"NCHW"。

返回

Tensor,数据类型和形状同 x 一致。

代码示例

>>> import paddle
>>> import paddle.nn.functional as F

>>> data = paddle.to_tensor(
...     [
...         [
...             [
...                 [-2.0, 3.0, -4.0, 5.0],
...                 [3.0, -4.0, 5.0, -6.0],
...                 [-7.0, -8.0, 8.0, 9.0],
...             ],
...             [
...                 [1.0, -2.0, -3.0, 4.0],
...                 [-5.0, 6.0, 7.0, -8.0],
...                 [6.0, 7.0, 8.0, 9.0],
...             ],
...         ]
...     ],
...     dtype='float32',
... )

>>> w = paddle.to_tensor([0.25], dtype='float32')
>>> out = F.prelu(data, w)
>>> print(out)
Tensor(shape=[1, 2, 3, 4], dtype=float32, place=Place(cpu), stop_gradient=True,
[[[[-0.50000000,  3.        , -1.        ,  5.        ],
   [ 3.        , -1.        ,  5.        , -1.50000000],
   [-1.75000000, -2.        ,  8.        ,  9.        ]],
  [[ 1.        , -0.50000000, -0.75000000,  4.        ],
   [-1.25000000,  6.        ,  7.        , -2.        ],
   [ 6.        ,  7.        ,  8.        ,  9.        ]]]])