比较与torch.unique的功能差异
torch.unique
torch.unique(
input,
sorted=True,
return_inverse=False,
return_counts=False,
dim=None
)
更多内容详见torch.unique。
mindspore.ops.Unique
class mindspore.ops.Unique(*args, **kwargs)(x)
更多内容详见mindspore.ops.Unique。
使用方式
PyTorch:可通过设置参数来确定输出是否排序,是否输出输入的tensor的各元素在输出tensor中的位置索引,是否输出各唯一值在输入的tensor中的数量。
MindSpore:升序输出所有的唯一值,以及输入的tensor的各元素在输出tensor中的位置索引。
代码示例
import mindspore as ms
import mindspore.ops as ops
import torch
import numpy as np
# In MindSpore, the tensor containing unique elements in ascending order.
# As well as another tensor containing the corresponding indices will be directly returned.
x = ms.Tensor(np.array([1, 2, 5, 2]), ms.int32)
unique = ops.Unique()
output, indices = unique(x)
print(output)
print(indices)
# Out:
# [1 2 5]
# [0 1 2 1]
# In torch, parameters can be set to determine whether to output tensor containing unique elements in ascending order.
# As well as whether to output tensor containing corresponding indices.
x = torch.tensor([1, 2, 5, 2])
output, indices = torch.unique(x, sorted=True, return_inverse=True)
print(output)
print(indices)
# Out:
# tensor([1, 2, 5])
# tensor([0, 1, 2, 1])