评价此页

PReLU#

class torch.nn.modules.activation.PReLU(num_parameters=1, init=0.25, device=None, dtype=None)[源代码]#

应用逐元素的 PReLU 函数。

PReLU(x)=max(0,x)+amin(0,x)\text{PReLU}(x) = \max(0,x) + a * \min(0,x)

PReLU(x)={x, if x0ax, otherwise \text{PReLU}(x) = \begin{cases} x, & \text{ if } x \ge 0 \\ ax, & \text{ otherwise } \end{cases}

其中 aa 是一个可学习的参数。当不带参数调用时,nn.PReLU() 使用一个参数 aa 作用于所有输入通道。如果使用 nn.PReLU(nChannels) 调用,则每个输入通道都有一个独立的 aa

注意

为了获得良好的性能,在学习 aa 时,不应使用权重衰减。

注意

通道维度是输入的第二个维度。当输入维度小于 2 时,则没有通道维度,通道数为 1。

参数
  • num_parameters (int) – 要学习的 aa 的数量。虽然它接受整数作为输入,但只有两个合法值:1,或输入通道数。默认为:1

  • init (float) – aa 的初始值。默认为:0.25

形状
  • 输入:()( *),其中 * 表示任何数量的附加维度。

  • 输出: ()(*),形状与输入相同。

变量

weight (Tensor) – 形状为 (num_parameters) 的可学习权重。

../_images/PReLU.png

示例

>>> m = nn.PReLU()
>>> input = torch.randn(2)
>>> output = m(input)
extra_repr()[源代码]#

返回模块的额外表示。

返回类型

str

forward(input)[源代码]#

执行前向传播。

返回类型

张量

reset_parameters()[源代码]#

根据 __init__ 中使用的初始化重置参数。