mindspore.nn.SoftShrink

class mindspore.nn.SoftShrink(lambd=0.5)[源代码]

SoftShrink激活函数。

\[\begin{split}\text{SoftShrink}(x) = \begin{cases} x - \lambda, & \text{ if } x > \lambda \\ x + \lambda, & \text{ if } x < -\lambda \\ 0, & \text{ otherwise } \end{cases}\end{split}\]

参数:

  • lambd - Softshrink公式中的 \(\lambda\) ,必须不小于零。默认值:0.5。

输入:

  • input_x (Tensor) - SoftShrink的输入,任意维度的Tensor,数据类型为float16或float32。

输出:

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

异常:

  • TypeError - lambd 不是float。

  • TypeError - input_x 不是tensor。

  • TypeError - input_x 的数据类型既不是float16也不是float32。

  • ValueError - lambd 小于0。

支持平台:

Ascend CPU GPU

样例:

>>> input_x = Tensor(np.array([[ 0.5297,  0.7871,  1.1754], [ 0.7836,  0.6218, -1.1542]]), mstype.float16)
>>> softshrink = nn.SoftShrink()
>>> output = softshrink(input_x)
>>> print(output)
[[ 0.02979  0.287    0.676  ]
 [ 0.2837   0.1216  -0.6543 ]]