評價此頁

torch.unique_consecutive#

torch.unique_consecutive(*args, **kwargs)[原始碼]#

從每個連續的等效元素組中刪除除第一個元素之外的所有元素。

注意

此函式與 torch.unique() 的不同之處在於,此函式僅消除連續的重複值。這種語義與 C++ 中的 std::unique 類似。

引數
  • input (Tensor) – 輸入張量

  • return_inverse (bool) – 是否也返回原始輸入元素在返回的唯一列表中位置的索引。

  • return_counts (bool) – 是否也返回每個唯一元素的計數。

  • dim (int) – 應用 unique 的維度。如果為 None,則返回展平輸入的 unique 值。預設值:None

返回

包含以下內容的張量或張量元組:

  • output (Tensor): 輸出的唯一標量元素列表。

  • inverse_indices (Tensor): (可選) 如果 return_inverse 為 True,則會額外返回一個張量(形狀與輸入相同),表示原始輸入中的元素對映到輸出中的位置;否則,此函式將只返回一個張量。

  • counts (Tensor): (可選) 如果 return_counts 為 True,則會額外返回一個張量(形狀與輸出相同,或如果指定了 dim,則與 output.size(dim) 相同),表示每個唯一值或張量的出現次數。

返回型別

(Tensor, Tensor (可選), Tensor (可選))

示例

>>> 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])