mindspore.mint.nn.PReLU

class mindspore.mint.nn.PReLU(num_parameters=1, init=0.25, dtype=None)[源代码]

逐元素计算PReLU(PReLU Activation Operator)激活函数。

公式定义为:

\[PReLU(x_i)= \max(0, x_i) + w * \min(0, x_i),\]

其中 \(x_i\) 是输入的Tensor。

这里 \(w\) 是一个可学习的参数,默认初始值0.25。 当带参数调用时每个通道上学习一个 \(w\) 。如果不带参数调用时,则将在所有通道中共享单个参数 \(w\)

PReLU函数图:

../../_images/PReLU2.png

说明

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

参数:
  • num_parameters (int) - 可训练参数 \(w\) 的数量。虽然这个参数可以接受一个int作为输入,但只有两个值是合法的,值是1或输入Tensor input 的通道数。默认值: 1

  • init (float) - 参数的初始值。默认值: 0.25

  • dtype (mindspore.dtype,可选) - 参数的dtype。默认值: None 。支持的数据类型是{float16, float32, bfloat16}。

输入:
  • input (Tensor) - PReLU的输入Tensor。

输出:

Tensor,数据类型和shape与 input 相同。

支持平台:

Ascend

样例:

>>> import mindspore
>>> from mindspore import Tensor, mint
>>> import numpy as np
>>> x = Tensor(np.array([[[[0.1, 0.6], [0.9, 0.9]]]]), mindspore.float32)
>>> prelu = mint.nn.PReLU()
>>> output = prelu(x)
>>> print(output)
[[[[0.1 0.6]
   [0.9 0.9]]]]