mindspore.ops.log_softmax
- mindspore.ops.log_softmax(logits, axis=- 1)[源代码]
在指定轴上对输入Tensor应用LogSoftmax函数。假设在指定轴上, \(x\) 对应每个元素 \(x_i\) ,则LogSoftmax函数如下所示:
\[\text{output}(x_i) = \log \left(\frac{\exp(x_i)} {\sum_{j = 0}^{N-1}\exp(x_j)}\right),\]其中, \(N\) 为Tensor长度。
- 参数:
logits (Tensor) - 输入Tensor,上述公式中的 \(x\) ,shape为 \((N, *)\) ,其中 \(*\) 表示任意数量的附加维度,其数据类型为float16或float32。
axis (int) - 指定进行运算的轴。默认值:
-1
。
- 返回:
Tensor,数据类型和shape与 logits 相同。
- 异常:
TypeError - axis 不是int。
TypeError - logits 的数据类型既不是float16也不是float32。
ValueError - axis 不在[-len(logits.shape), len(logits.shape))范围中。
ValueError - logits 的维度小于1。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, ops >>> logits = Tensor(np.array([1, 2, 3, 4, 5]), mindspore.float32) >>> output = ops.log_softmax(logits) >>> print(output) [-4.4519143 -3.4519143 -2.4519143 -1.4519144 -0.4519144]