mindspore.ops.PReLU =================== .. py:class:: mindspore.ops.PReLU(*args, **kwargs) 带参数的线性修正单元激活函数(Parametric Rectified Linear Unit activation function)。 `Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification `_ 描述了PReLU激活函数。定义如下: .. math:: prelu(x_i)= \max(0, x_i) + \min(0, w * x_i), 其中 :math:`x_i` 是输入的一个通道的一个元素,`w` 是通道权重。 .. note:: Ascend不支持0-D或1-D的x。 **输入:** - **x** (Tensor) - 用于计算激活函数的Tensor。数据类型为float16或float32。shape为 :math:`(N, C, *)` ,其中 :math:`*` 表示任意的附加维度数。 - **weight** (Tensor) - 权重Tensor。数据类型为float16或float32。只有两种shape是合法的,1或 `input_x` 的通道数。通道维度是输入的第二维。当输入为0-D或1-D Tensor时,通道数为1。 **输出:** Tensor,数据类型与 `x` 的相同。 有关详细信息,请参考:class:`nn.PReLU`。 **异常:** - **TypeError** - `x` 或 `weight` 的数据类型既不是float16也不是float32。 - **TypeError** - `x` 或 `weight` 不是Tensor。 - **ValueError** - `x` 是Ascend上的0-D或1-D Tensor。 - **ValueError** - `weight` 不是1-D Tensor。 **支持平台:** ``Ascend`` ``GPU`` **样例:** >>> class Net(nn.Cell): ... def __init__(self): ... super(Net, self).__init__() ... self.prelu = ops.PReLU() ... def construct(self, x, weight): ... result = self.prelu(x, weight) ... return result ... >>> x = Tensor(np.arange(-6, 6).reshape((2, 3, 2)), mindspore.float32) >>> weight = Tensor(np.array([0.1, 0.6, -0.3]), mindspore.float32) >>> net = Net() >>> output = net(x, weight) >>> print(output) [[[-0.60 -0.50] [-2.40 -1.80] [ 0.60 0.30]] [[ 0.00 1.00] [ 2.00 3.00] [ 4.0 5.00]]]