torch.bincount — PyTorch 2.7 documentation (original) (raw)
torch.bincount(input, weights=None, minlength=0) → Tensor¶
Count the frequency of each value in an array of non-negative ints.
The number of bins (size 1) is one larger than the largest value ininput
unless input
is empty, in which case the result is a tensor of size 0. If minlength
is specified, the number of bins is at leastminlength
and if input
is empty, then the result is tensor of sizeminlength
filled with zeros. If n
is the value at position i
,out[n] += weights[i]
if weights
is specified elseout[n] += 1
.
Note
This operation may produce nondeterministic gradients when given tensors on a CUDA device. See Reproducibility for more information.
Parameters
- input (Tensor) – 1-d int tensor
- weights (Tensor) – optional, weight for each value in the input tensor. Should be of same size as input tensor.
- minlength (int) – optional, minimum number of bins. Should be non-negative.
Returns
a tensor of shape Size([max(input) + 1])
ifinput
is non-empty, else Size(0)
Return type
output (Tensor)
Example:
input = torch.randint(0, 8, (5,), dtype=torch.int64) weights = torch.linspace(0, 1, steps=5) input, weights (tensor([4, 3, 6, 3, 4]), tensor([ 0.0000, 0.2500, 0.5000, 0.7500, 1.0000])
torch.bincount(input) tensor([0, 0, 0, 2, 2, 0, 1])
input.bincount(weights) tensor([0.0000, 0.0000, 0.0000, 1.0000, 1.0000, 0.0000, 0.5000])