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
,则会返回一个额外的张量(形状与输出相同,或者如果指定了 dim,则形状与 output.size(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])