mindspore.nn.SiLU

class mindspore.nn.SiLU[源代码]

逐元素计算SiLU激活函数。有时也被称作Swish函数。

SiLU函数定义为:

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

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

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

SiLU函数图:

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

输出:

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

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

支持平台:

Ascend GPU CPU

样例:

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