torch.quantile
-
torch.quantile(input, q, dim=None, keepdim=False, *, interpolation='linear', out=None) → Tensor -
Вычисляет q-е квантили каждой строки
inputтензора вдоль измеренияdim.Для вычисления квантиля мы отображаем q в [0, 1] на диапазон индексов [0, n], чтобы найти расположение квантиля в отсортированном входном массиве. Если квантиль находится между двумя точками данных
a < bс индексамиiиjв отсортированном порядке, результат вычисляется в соответствии с заданнымinterpolationметодом следующим образом:-
linear:a + (b - a) * fraction, гдеfraction— дробная часть вычисленного индекса квантиля. -
lower:a. -
higher:b. -
nearest:aилиb, чьей индекс ближе к вычисленному индексу квантиля (округляя вниз для дробей .5). -
midpoint:(a + b) / 2.
Если
qявляется одномерным тензором, первое измерение выходного тензора представляет квантили и имеет размер, равный размеруq, оставшиеся измерения — оставшиеся после сокращения.Примечание
По умолчанию
dimявляетсяNoneв результате чего тензорinputсжимается перед вычислением.- Параметры:
- Аргументы ключевого слова:
Пример:
>>> 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.) -
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.quantile.html