torch.unique_consecutive¶
- torch.unique_consecutive(*args, **kwargs)[source]¶
消除所有连续等效元素组中除了第一个元素之外的所有元素。
注意
此函数与
torch.unique()
不同,因为它仅消除连续重复的值。这种语义与 C++中的 std::unique 相似。- 参数:
输入(张量)- 输入张量
return_inverse (bool) – 是否同时返回原始输入中元素在返回的唯一列表中的索引。
return_counts (bool) – 是否同时返回每个唯一元素的计数。
dim (int) – 应用唯一的维度。如果
None
,则返回展平输入的唯一值。默认:None
- 返回值:
A tensor or a tuple of tensors containing
输出(张量):唯一标量元素的输出列表。
索引反转(张量):(可选)如果
return_inverse
为 True,将返回一个额外的张量(与输入形状相同),表示原始输入中的元素在输出中的映射索引;否则,此函数将只返回单个张量。计数(张量):(可选)如果
return_counts
为 True,将返回一个额外的张量(与输出形状相同或 output.size(dim),如果指定了 dim)表示每个唯一值或张量的出现次数。
- 返回类型:
(张量,张量(可选),张量(可选))
示例:
>>> x = torch.tensor([1, 1, 2, 2, 3, 1, 1, 2]) >>> output = torch.unique_consecutive(x) >>> output tensor([1, 2, 3, 1, 2]) >>> output, inverse_indices = torch.unique_consecutive(x, return_inverse=True) >>> output tensor([1, 2, 3, 1, 2]) >>> inverse_indices tensor([0, 0, 1, 1, 2, 3, 3, 4]) >>> output, counts = torch.unique_consecutive(x, return_counts=True) >>> output tensor([1, 2, 3, 1, 2]) >>> counts tensor([2, 2, 1, 2, 1])