mindspore.ops.unique

mindspore.ops.unique(x)[源代码]

对输入Tensor中元素去重,并返回一个索引Tensor,包含输入Tensor中的元素在输出Tensor中的索引。

yidx 的shape通常会有差别,因为 y 会将元素去重,而 idx 的shape与 x 一致。 若需要 idxy 的shape相同,请参考 mindspore.ops.UniqueWithPad 算子。

警告

此算子为实验性算子,将来可能面临更改或删除。

参数:
  • x (Tensor) - 需要被去重的Tensor。shape: \((N,*)\) ,其中 \(*\) 表示任意数量的附加维度。

返回:

Tuple, (y, idx)y 是与 x 数据类型相同的Tensor,包含 x 中去重后的元素。 idx 为索引Tensor,包含 x 中的元素在 y 中的索引,与 x 的shape相同。

异常:
  • TypeError - x 不是Tensor。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, nn
>>> from mindspore import ops
>>> x = Tensor(np.array([1, 2, 5, 2]), mindspore.int32)
>>> output = ops.unique(x)
>>> print(output)
(Tensor(shape=[3], dtype=Int32, value= [1, 2, 5]), Tensor(shape=[4], dtype=Int32, value= [0, 1, 2, 1]))
>>> y = output[0]
>>> print(y)
[1 2 5]
>>> idx = output[1]
>>> print(idx)
[0 1 2 1]