mindspore.ops.Softmax

class mindspore.ops.Softmax(axis=- 1)[源代码]

Softmax函数。

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

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

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

参数:

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

输入:

  • logits (Tensor) - shape:\((N, *)\) ,其中 \(*\) 表示任意数量的附加维度。其数据类型为float16或float32。

输出:

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

异常:

  • TypeError - axis 既不是int也不是tuple。

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

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

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

支持平台:

Ascend GPU CPU

样例:

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