Shortcuts

PReLU

class torch.nn.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 \geq 0 \\ ax, & \text{ otherwise } \end{cases}

这里 aa 是一个可学习的参数。当不带参数调用时,nn.PReLU() 使用一个单一的参数 aa 应用于所有输入通道。如果使用 nn.PReLU(nChannels) 调用,则为每个输入通道使用一个单独的 aa

注意

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

注意

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

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

  • 初始化 (浮点数) – aa 的初始值。默认值: 0.25

Shape:
  • 输入:()( *) 其中 * 表示任意数量的额外维度。

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

Variables

权重 (张量) – 可学习的权重,形状为 (num_parameters)。

../_images/PReLU.png

示例:

>>> m = nn.PReLU()
>>> input = torch.randn(2)
>>> output = m(input)
优云智算