mindspore.ops.unique_with_pad

mindspore.ops.unique_with_pad(x, pad_num)[源代码]

对输入一维Tensor中元素去重,返回一维Tensor中的唯一元素(使用pad_num填充)和相对索引。

基本操作与unique相同,但unique_with_pad多了pad操作。 unique运算符对Tensor处理后所返回的元组( yidx ), yidx 的shape通常会有差别。因此,为了解决上述情况, unique_with_pad操作符将用用户指定的 pad_num 填充 y ,使其具有与 idx 相同shape。

警告

mindspore.ops.unique_with_pad() 从2.4版本开始已被弃用,并将在未来版本中被移除。 请组合使用 mindspore.ops.unique()mindspore.ops.pad() 实现同样的功能。

参数:
  • x (Tensor) - 需要被去重的Tensor。必须是类型为int32或int64的一维向量。

  • pad_num (int) - 填充值。数据类型为int32或int64。

返回:

tuple (Tensor),包含两个Tensor,分别是 yidx

  • y (Tensor) - y 是与 x shape和数据类型相同的Tensor,包含 x 中去重后的元素,并用 pad_num 填充。

  • idx (Tensor) - idx 为索引Tensor,包含 x 中的元素在 y 中的索引,与 x 的shape相同。

异常:
  • TypeError - x 的数据类型既不是int32也不是int64。

  • ValueError - x 不是一维Tensor。

支持平台:

Deprecated

样例:

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