PReLU

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 \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) 的可学习权重。

{BASE_RAW_UPLOAD_URL}/pytorch-doc-2.5/4e58e5d3566e1be273a835a64712eaaf.png

示例:

>>> m = nn.PReLU()
>>> input = torch.randn(2)
>>> output = m(input)
本页目录