PReLU

class paddle.nn. PReLU ( num_parameters=1, init=0.25, weight_attr=None, name=None ) [源代码]

PReLU激活层(PReLU Activation Operator)。计算公式如下:

如果使用近似计算:

PReLU - 图1

其中,xx 为输入的 Tensor

参数

  • num_parameters (int, 可选) - 可训练weight数量,支持2种输入:1 - 输入中的所有元素使用同一个weight值; 输入的通道数 - 在同一个通道中的元素使用同一个weight值。默认为1。

  • init (float, 可选) - weight的初始值。默认为0.25。

  • weight_attr (ParamAttr, 可选) - 指定权重参数属性的对象。默认值为None,表示使用默认的权重参数属性。具体用法请参见 cn_api_ParamAttr 。

  • name (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 Name

形状:

  • input: 任意形状的Tensor,默认数据类型为float32。

  • output: 和input具有相同形状的Tensor。

代码示例

  1. import paddle
  2. import numpy as np
  3. paddle.set_default_dtype("float64")
  4. data = np.array([[[[-2.0, 3.0, -4.0, 5.0],
  5. [ 3.0, -4.0, 5.0, -6.0],
  6. [-7.0, -8.0, 8.0, 9.0]],
  7. [[ 1.0, -2.0, -3.0, 4.0],
  8. [-5.0, 6.0, 7.0, -8.0],
  9. [ 6.0, 7.0, 8.0, 9.0]]]], 'float64')
  10. x = paddle.to_tensor(data)
  11. m = paddle.nn.PReLU(1, 0.25)
  12. out = m(x)
  13. # [[[[-0.5 , 3. , -1. , 5. ],
  14. # [ 3. , -1. , 5. , -1.5 ],
  15. # [-1.75, -2. , 8. , 9. ]],
  16. # [[ 1. , -0.5 , -0.75, 4. ],
  17. # [-1.25, 6. , 7. , -2. ],
  18. # [ 6. , 7. , 8. , 9. ]]]]