Функция kthvalue
Функция kthvalue находит k-е наименьшее значение в тензоре
вдоль заданной размерности. Первым параметром функция принимает
тензор, вторым - значение k (начиная с 1). Третьим параметром
можно указать размерность, вдоль которой производится поиск
(по умолчанию последняя). Функция возвращает кортеж из двух
тензоров: значений и их индексов.
Синтаксис
torch.kthvalue(input, k, [dim], [keepdim])
Пример
Давайте найдём второе наименьшее значение в одномерном тензоре:
import torch
t = torch.tensor([5, 2, 8, 1, 9])
res = torch.kthvalue(t, 2)
print(res)
Результат выполнения кода:
torch.return_types.kthvalue(
values=tensor(2),
indices=tensor(1)
)
Пример
Найдём третье наименьшее значение в двумерном тензоре вдоль строк:
import torch
t = torch.tensor([
[5, 2, 8],
[1, 9, 3],
[7, 4, 6]
])
res = torch.kthvalue(t, 3, dim=0)
print(res.values)
print(res.indices)
Результат выполнения кода:
tensor([7, 9, 8])
tensor([2, 1, 0])
Пример
Найдём первое наименьшее значение (минимальное) в тензоре с сохранением размерности:
import torch
t = torch.tensor([
[4, 1, 7],
[3, 8, 2]
])
res = torch.kthvalue(t, 1, dim=1, keepdim=True)
print(res.values)
print(res.indices)
Результат выполнения кода:
tensor([
[1],
[2]
])
tensor([
[1],
[2]
])
Пример
Найдём k-е наименьшее значение в тензоре с плавающей точкой:
import torch
t = torch.tensor([3.5, 1.2, 8.7, 2.3, 5.1])
res = torch.kthvalue(t, 4)
print(res.values)
print(res.indices)
Результат выполнения кода:
tensor(5.1000)
tensor(4)