PRelu

  • class paddle.fluid.dygraph.PRelu(mode, input_shape=None, param_attr=None, dtype="float32")[源代码]

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

计算公式如下:

PRelu - 图1

  • 参数:
    • mode (str) - 权重共享模式。共提供三种激活方式:
  1. all:所有元素使用同一个alpha
  2. channel:在同一个通道中的元素使用同一个alpha
  3. element:每一个元素有一个独立的alpha
  • channel (int,可选) - 通道数。该参数在mode参数为"channel"时是必须的。默认为None。
  • input_shape (int 或 list 或 tuple,可选) - 输入的维度。该参数在mode参数为"element"时是必须的。默认为None。
  • param_attr (ParamAttr, 可选) - 指定权重参数属性的对象。默认值为None,表示使用默认的权重参数属性。具体用法请参见 ParamAttr
  • dtype (str, 可选) - 数据类型,可以为"float32"或"float64"。默认值:"float32"。

返回:无

代码示例:

  1. import paddle.fluid as fluid
  2. from paddle.fluid.dygraph.base import to_variable
  3. import numpy as np
  4.  
  5. inp_np = np.ones([5, 200, 100, 100]).astype('float32')
  6. with fluid.dygraph.guard():
  7. inp_np = to_variable(inp_np)
  8. prelu0 = fluid.PRelu(
  9. mode='all',
  10. param_attr=fluid.ParamAttr(initializer=fluid.initializer.Constant(1.0)))
  11. dy_rlt0 = prelu0(inp_np)
  12. prelu1 = fluid.PRelu(
  13. mode='channel',
  14. channel=200,
  15. param_attr=fluid.ParamAttr(initializer=fluid.initializer.Constant(1.0)))
  16. dy_rlt1 = prelu1(inp_np)
  17. prelu2 = fluid.PRelu(
  18. mode='element',
  19. input_shape=inp_np.shape,
  20. param_attr=fluid.ParamAttr(initializer=fluid.initializer.Constant(1.0)))
  21. dy_rlt2 = prelu2(inp_np)

属性

  • weight

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