mindspore.ops.softmax

mindspore.ops.softmax(x, axis=- 1, *, dtype=None)[源代码]

在指定轴上对输入Tensor执行Softmax激活函数做归一化操作。假设指定轴 \(x\) 上有切片,那么每个元素 \(x_i\) 所对应的Softmax函数如下所示:

\[\text{output}(x_i) = \frac{exp(x_i)}{\sum_{j = 0}^{N-1}\exp(x_j)},\]

其中 \(N\) 代表Tensor的长度。

参数:
  • x (Tensor) - Softmax的输入,shape为 \((N, *)\) ,其中 \(*\) 为任意额外维度。其数据类型为float16或float32。

  • axis (Union[int, tuple[int]], 可选) - 指定Softmax操作的轴。默认值:-1。

关键字参数:
  • dtype (mindspore.dtype, 可选) - 如果设置此参数,则会在执行之前将 x 转换为指定的类型,返回的Tensor类型也将为指定类型 dtype。默认值:None。

返回:

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

异常:
  • TypeError - axis 不是int或者tuple。

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

  • ValueError - axis 是长度小于1的tuple。

  • ValueError - axis 是一个tuple,其元素不全在[-len(x.shape), len(x.shape))范围中。

支持平台:

Ascend GPU CPU

样例:

>>> x = Tensor(np.array([1, 2, 3, 4, 5]), mindspore.float32)
>>> output = ops.softmax(x)
>>> print(output)
[0.01165623 0.03168492 0.08612854 0.23412167 0.6364086 ]