torch.bucketize
-
torch.bucketize(input, boundaries, *, out_int32=False, right=False, out=None) → Tensor -
Возвращает индексы ячеек, в которые попадает каждое значение в
input, где границы ячеек задаютсяboundaries. Возвращает новый тензор того же размера, что иinput. Еслиrightравно False (по умолчанию), то левая граница открыта. Обратите внимание, что это поведение противоположно поведению numpy.digitize. Более формально, возвращаемый индекс удовлетворяет следующим правилам:rightвозвращаемый индекс удовлетворяет
False
boundaries[i-1] < input[m][n]...[l][x] <= boundaries[i]True
boundaries[i-1] <= input[m][n]...[l][x] < boundaries[i]- Parameters
- Keyword Arguments
-
- out_int32 (bool, optional) – указывает тип данных результата. torch.int32, если True, torch.int64 в противном случае. Значение по умолчанию False, т.е. тип данных результата по умолчанию torch.int64.
-
right (bool, optional) – если False, возвращает первый подходящий индекс. Если True, возвращает последний подходящий индекс. Если подходящий индекс не найден, возвращает 0 для нечислового значения (например, nan, inf) или размер
boundaries(превышение последнего индекса). Другими словами, если False, получает индекс нижней границы для каждого значения вinputизboundaries. Если True, получает индекс верхней границы вместо этого. Значение по умолчанию False. -
out (Тензор, optional) – выходной тензор, должен быть того же размера, что и
inputпри его указании.
Пример:
>>> 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]])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.bucketize.html