当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch unique用法及代码示例


本文简要介绍python语言中 torch.unique 的用法。

用法:

torch.unique(*args, **kwargs)

参数

  • input(Tensor) -输入张量

  • sorted(bool) -在作为输出返回之前是否对唯一元素进行升序排序。

  • return_inverse(bool) -是否还返回原始输入中的元素在返回的唯一列表中结束的位置的索引。

  • return_counts(bool) -是否还返回每个唯一元素的计数。

  • dim(int) -应用唯一的维度。如果 None ,则返回平展输入的唯一性。默认值:None

返回

一个张量或一个张量元组包含

  • 输出(Tensor):唯一标量元素的输出列表。

  • inverse_indices(Tensor):(可选)如果return_inverse为 True,将有一个额外的返回张量(与输入的形状相同)表示原始输入中的元素映射到输出中的位置的索引;否则,此函数将仅返回一个张量。

  • 计数(Tensor):(可选)如果return_counts为 True 时,将有一个额外的返回张量(与输出或 output.size(dim) 相同的形状,如果指定了dim),表示每个唯一值或张量的出现次数。

返回类型

(TensorTensor(可选)、Tensor(可选))

返回输入张量的唯一元素。

注意

此函数与 torch.unique_consecutive() 的不同之处在于此函数还消除了不连续的重复值。

注意

目前在 CUDA 实现和 CPU 实现中,当指定 dim 时,torch.unique 始终在开头对张量进行排序,而不管 sort 参数如何。排序可能会很慢,因此如果您的输入张量已经排序,建议使用 torch.unique_consecutive() ,这样可以避免排序。

例子:

>>> output = torch.unique(torch.tensor([1, 3, 2, 3], dtype=torch.long))
>>> output
tensor([ 2,  3,  1])

>>> output, inverse_indices = torch.unique(
...     torch.tensor([1, 3, 2, 3], dtype=torch.long), sorted=True, return_inverse=True)
>>> output
tensor([ 1,  2,  3])
>>> inverse_indices
tensor([ 0,  2,  1,  2])

>>> output, inverse_indices = torch.unique(
...     torch.tensor([[1, 3], [2, 3]], dtype=torch.long), sorted=True, return_inverse=True)
>>> output
tensor([ 1,  2,  3])
>>> inverse_indices
tensor([[ 0,  2],
        [ 1,  2]])

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.unique。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。