# mindspore.ops.ArgMaxWithValue

class mindspore.ops.ArgMaxWithValue(axis=0, keep_dims=False)[source]

Calculates the maximum value with the corresponding index.

Calculates the maximum value along with the given axis for the input tensor. It returns the maximum values and indices.

Note

In auto_parallel and semi_auto_parallel mode, the first output index can not be used.

Warning

• If there are multiple maximum values, the index of the first maximum value is used.

• The value range of “axis” is [-dims, dims - 1]. “dims” is the dimension length of “input_x”.

Parameters
• axis (int) – The dimension to reduce. Default: 0.

• keep_dims (bool) – Whether to reduce dimension, if true, the output will keep same dimension with the input, the output will reduce dimension if false. Default: False.

Inputs:
• input_x (Tensor) - The input tensor, can be any dimension. Set the shape of input tensor as $$(x_1, x_2, ..., x_N)$$. And the data type only support mindspore.float16 or float32.

Outputs:

tuple (Tensor), tuple of 2 tensors, containing the corresponding index and the maximum value of the input tensor. - index (Tensor) - The index for the maximum value of the input tensor. If keep_dims is true, the shape of output tensors is $$(x_1, x_2, ..., x_{axis-1}, 1, x_{axis+1}, ..., x_N)$$. Otherwise, the shape is $$(x_1, x_2, ..., x_{axis-1}, x_{axis+1}, ..., x_N)$$. - output_x (Tensor) - The maximum value of input tensor, with the same shape as index.

Raises
Supported Platforms:

Ascend GPU CPU

Examples

>>> input_x = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]), mindspore.float32)
>>> index, output = ops.ArgMaxWithValue()(input_x)
>>> print(index, output)
3 0.7
>>> index, output = ops.ArgMaxWithValue(keep_dims=True)(input_x)
>>> print(index, output)
[3] [0.7]