mindspore.ops.logsumexp

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

求Tensor的对数指数和。

\[logsumexp(x) = \log(\sum e^{x-x_{max}}) + x_{max}\]

Note

Ascend上输入Tensor的维度要小于等于8,CPU上输入Tensor的维度要小于8。

参数:

  • x (Tensor) - 任意维度的输入Tensor。数据类型为float16或float32。

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

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

返回:

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

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

  • 若axis为int类型,假设为2,且 keep_dims 设为False,则输出的shape为 \((x_1, x_3, ..., x_R)\)

  • 若axis为tuple(int),假设为(2, 3),且 keep_dims 为False,则输出shape为 \((x_1, x_4, ..., x_R)\)

支持平台:

Ascend GPU CPU

样例:

>>> 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)