torch.quantile¶
- torch.quantile(input, q, dim=None, keepdim=False, *, interpolation='linear', out=None) Tensor¶
Computes the q-th quantiles of each row of the
inputtensor along the dimensiondim.To compute the quantile, we map q in [0, 1] to the range of indices [0, n] to find the location of the quantile in the sorted input. If the quantile lies between two data points
a < bwith indicesiandjin the sorted order, result is computed according to the giveninterpolationmethod as follows:linear:a + (b - a) * fraction, wherefractionis the fractional part of the computed quantile index.lower:a.higher:b.nearest:aorb, whichever’s index is closer to the computed quantile index (rounding down for .5 fractions).midpoint:(a + b) / 2.
If
qis a 1D tensor, the first dimension of the output represents the quantiles and has size equal to the size ofq, the remaining dimensions are what remains from the reduction.Note
By default
dimisNoneresulting in theinputtensor being flattened before computation.- Parameters:
- Keyword Arguments:
Example:
>>> a = torch.randn(2, 3) >>> a tensor([[ 0.0795, -1.2117, 0.9765], [ 1.1707, 0.6706, 0.4884]]) >>> q = torch.tensor([0.25, 0.5, 0.75]) >>> torch.quantile(a, q, dim=1, keepdim=True) tensor([[[-0.5661], [ 0.5795]], [[ 0.0795], [ 0.6706]], [[ 0.5280], [ 0.9206]]]) >>> torch.quantile(a, q, dim=1, keepdim=True).shape torch.Size([3, 2, 1]) >>> a = torch.arange(4.) >>> a tensor([0., 1., 2., 3.]) >>> torch.quantile(a, 0.6, interpolation='linear') tensor(1.8000) >>> torch.quantile(a, 0.6, interpolation='lower') tensor(1.) >>> torch.quantile(a, 0.6, interpolation='higher') tensor(2.) >>> torch.quantile(a, 0.6, interpolation='midpoint') tensor(1.5000) >>> torch.quantile(a, 0.6, interpolation='nearest') tensor(2.) >>> torch.quantile(a, 0.4, interpolation='nearest') tensor(1.)