當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch bucketize用法及代碼示例


本文簡要介紹python語言中 torch.bucketize 的用法。

用法:

torch.bucketize(input, boundaries, *, out_int32=False, right=False, out=None) → Tensor

參數

  • input(Tensor或者標量) -N-D 張量或包含搜索值的標量。

  • boundaries(Tensor) -一維張量,必須包含一個單調遞增的序列。

關鍵字參數

  • out_int32(bool,可選的) -指示輸出數據類型。如果為 True,則為 torch.int32,否則為 torch.int64。默認值為 False,即默認輸出數據類型為 torch.int64。

  • right(bool,可選的) -如果為 False,則返回找到的第一個合適的位置。如果為 True,則返回最後一個此類索引。如果沒有找到合適的索引,則返回 0 表示非數值(例如 nan、inf)或 boundaries 的大小(通過最後一個索引)。換句話說,如果為 False,則從 boundaries 獲取 input 中每個值的下限索引。如果為 True,則改為獲取上限索引。默認值為假。

  • out(Tensor,可選的) -輸出張量,必須與input(如果提供)大小相同。

返回 input 中每個值所屬的桶的索引,其中桶的邊界由 boundaries 設置。返回一個與 input 大小相同的新張量。如果 right 為 False(默認),則左邊界是閉合的。更正式地說,返回的索引滿足以下規則:

right

返回的索引滿足

False

boundaries[i-1] < input[m][n]...[l][x] <= boundaries[i]

True

boundaries[i-1] <= input[m][n]...[l][x] < boundaries[i]

例子:

>>> boundaries = torch.tensor([1, 3, 5, 7, 9])
>>> boundaries
tensor([1, 3, 5, 7, 9])
>>> v = torch.tensor([[3, 6, 9], [3, 6, 9]])
>>> v
tensor([[3, 6, 9],
        [3, 6, 9]])
>>> torch.bucketize(v, boundaries)
tensor([[1, 3, 4],
        [1, 3, 4]])
>>> torch.bucketize(v, boundaries, right=True)
tensor([[2, 3, 5],
        [2, 3, 5]])

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.bucketize。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。