mindspore.ops.logsumexp

mindspore.ops.logsumexp(input, axis, keep_dims=False)[source]

Reduces a dimension of a tensor by calculating exponential for all elements in the dimension, then calculate logarithm of the sum.

\[logsumexp(input) = \log(\sum(e^{input-input_{max}})) + input_{max}\]
Parameters
  • input (Tensor) – The input tensor. With float16 or float32 data type.

  • axis (Union[int, tuple(int), list(int)]) – The dimensions to reduce. Only constant value is allowed.

  • keep_dims (bool) – If True, keep these reduced dimensions and the length is 1. If False , don’t keep these dimensions. Default : False .

Returns

Tensor, has the same dtype as the input.

  • If axis is (), and keep_dims is False, the output is a 0-D tensor representing the sum of all elements in the input tensor.

  • If axis is int, set as 2, and keep_dims is False, the shape of output is \((input_1, input_3, ..., input_R)\).

  • If axis is tuple(int), set as (2, 3), and keep_dims is False, the shape of output is \((input_1, input_4, ..., input_R)\).

Supported Platforms:

Ascend GPU CPU

Examples

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