torch.functional.unique_consecutive#
- torch.functional.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])