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