- torch.bucketize(input, boundaries, *, out_int32=False, right=False, out=None) Tensor ¶
Returns the indices of the buckets to which each value in the
inputbelongs, where the boundaries of the buckets are set by
boundaries. Return a new tensor with the same size as
rightis False (default), then the left boundary is open. Note that this behavior is opposite the behavior of numpy.digitize. More formally, the returned index satisfies the following rules:
returned index satisfies
boundaries[i-1] < input[m][n]...[l][x] <= boundaries[i]
boundaries[i-1] <= input[m][n]...[l][x] < boundaries[i]
- Keyword Arguments
out_int32 (bool, optional) – indicate the output data type. torch.int32 if True, torch.int64 otherwise. Default value is False, i.e. default output data type is torch.int64.
right (bool, optional) – if False, return the first suitable location that is found. If True, return the last such index. If no suitable index found, return 0 for non-numerical value (eg. nan, inf) or the size of
boundaries(one pass the last index). In other words, if False, gets the lower bound index for each value in
boundaries. If True, gets the upper bound index instead. Default value is False.
out (Tensor, optional) – the output tensor, must be the same size as
>>> 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]])