mindspore.ops.logsumexp

mindspore.ops.logsumexp(input, axis, keep_dims=False)[源代码]

求Tensor的对数指数和。

\[logsumexp(input) = \log(\sum(e^{input-input_{max}})) + input_{max}\]
参数:
  • input (Tensor) - 任意维度的输入Tensor。数据类型为float16或float32。

  • axis (Union[int, tuple(int), list(int)]) - 需要归约的维度,输入为 () 时归约所有维度。

  • keep_dims (bool) - 是否保留归约的维度。若设为 True ,则计算后指定的axis的长度为1,否则不保留该维度。默认值: False

返回:

Tensor,具有与 input 相同的数据类型。

  • 若axis为(),且 keep_dims 设为False,则输出为零维Tensor。

  • 若axis为int类型,假设为2,且 keep_dims 设为False,则输出的shape为 \((input_1, input_3, ..., input_R)\)

  • 若axis为tuple(int),假设为(2, 3),且 keep_dims 为False,则输出shape为 \((input_1, input_4, ..., input_R)\)

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> x = Tensor(np.random.randn(3, 4, 5, 6).astype(np.float32))
>>> output = ops.logsumexp(x, 1, keep_dims=True)
>>> print(output.shape)
(3, 1, 5, 6)