mindspore.ops.ArgMaxWithValue
- class mindspore.ops.ArgMaxWithValue(axis=0, keep_dims=False)[源代码]
在给定轴上计算输入Tensor的最大值,并且返回最大值和索引。
说明
在auto_parallel和semi_auto_parallel模式下,不能使用第一个输出索引。
警告
如果有多个最大值,则取第一个最大值的索引。
axis 的取值范围为[-dims, dims - 1]。"dims"为 input 的维度长度。
参考:
mindspore.ops.max()
。- 参数:
axis (int) - 指定计算维度。默认值:
0
。keep_dims (bool) - 表示是否减少维度,如果为
True
,输出将与输入保持相同的维度;如果为False
,输出将减少维度。默认值:False
。
- 输入:
input (Tensor) - 输入任意维度的Tensor。将输入Tensor的shape设为 \((input_1, input_2, ..., input_N)\) 。
- 输出:
tuple (Tensor),表示2个Tensor组成的tuple,包含对应的索引和输入Tensor的最大值。
index (Tensor) - 输入Tensor最大值的索引,数据类型为int64。如果 keep_dims 为
True
,则输出Tensor的shape为 \((input_1, input_2, ..., input_{axis-1}, 1, input_{axis+1}, ..., input_N)\) 。否则,shape为 \((input_1, input_2, ..., input_{axis-1}, input_{axis+1}, ..., input_N)\) 。values (Tensor) - 输入Tensor的最大值,其shape与 index 相同,数据类型与 input 相同。
- 异常:
TypeError - keep_dims 不是bool。
TypeError - axis 不是int。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, ops >>> 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]