torch.unique_consecutive¶
- torch.unique_consecutive(*args, **kwargs)¶
消除每个连续等效元素组中除第一个元素之外的所有元素。
注意
此函数与
torch.unique()
不同,因为它只消除连续的重复值。此语义类似于 C++ 中的 std::unique。- 参数
- 返回值
包含以下内容的张量或张量元组:
output (Tensor): 唯一标量元素的输出列表。
inverse_indices (Tensor): (可选) 如果
return_inverse
为 True,则将返回另一个张量(与输入形状相同),表示原始输入中的元素在输出中的映射索引;否则,此函数将只返回一个张量。counts (Tensor): (可选) 如果
return_counts
为 True,则将返回另一个张量(与输出形状相同或输出.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])