mindspore.ops.silu

mindspore.ops.silu(input)[源代码]

按输入逐元素计算激活函数SiLU(Sigmoid Linear Unit)。有时也被称作Swish函数。该激活函数定义为:

\[\text{SiLU}(x) = x * \sigma(x),\]

其中 \(x\) 是输入的元素, \(\sigma(x)\) 是Sigmoid函数。

\[\text{sigma}(x_i) = \frac{1}{1 + \exp(-x_i)},\]

SiLU函数图:

../../_images/SiLU.png
参数:
  • input (Tensor) - input 即为上述公式中的 \(x\)。数据类型为float16或float32的输入。

返回:

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

异常:
  • TypeError - input 的数据类型既不是float16也不是float32。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> from mindspore import Tensor, ops
>>> import numpy as np
>>> input = Tensor(np.array([-1, 2, -3, 2, -1]), mindspore.float16)
>>> output = ops.silu(input)
>>> print(output)
[-0.269  1.762  -0.1423  1.762  -0.269]