Функция F.pairwise_distance
Функция F.pairwise_distance вычисляет расстояние между соответствующими векторами из двух тензоров. Первым параметром передается тензор x1, вторым - тензор x2. Третьим параметром можно указать вычислительную норму (по умолчанию p=2.0), а четвертым - параметр eps для численной стабильности. Функция возвращает одномерный тензор расстояний.
Синтаксис
torch.nn.functional.pairwise_distance(x1, x2, p=2.0, eps=1e-06, keepdim=False)
Пример
Давайте вычислим евклидово расстояние между двумя векторами:
import torch
import torch.nn.functional as F
t1 = torch.tensor([1.0, 2.0, 3.0])
t2 = torch.tensor([4.0, 5.0, 6.0])
res = F.pairwise_distance(t1, t2)
print(res)
Результат выполнения кода:
tensor(5.1962)
Пример
Рассмотрим использование параметра p для вычисления манхэттенского расстояния (норма L1):
import torch
import torch.nn.functional as F
t1 = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
t2 = torch.tensor([[5.0, 6.0], [7.0, 8.0]])
res = F.pairwise_distance(t1, t2, p=1.0)
print(res)
Результат выполнения кода:
tensor([8., 8.])
Пример
Покажем работу с параметром keepdim, который сохраняет размерность:
import torch
import torch.nn.functional as F
t1 = torch.randn(2, 3)
t2 = torch.randn(2, 3)
res = F.pairwise_distance(t1, t2, keepdim=True)
print(res.shape)
Результат выполнения кода:
torch.Size([2, 1])
Смотрите также
-
функцию
cosine_similarity,
которая вычисляет косинусное сходство между векторами -
функцию
pdist,
которая вычисляет попарные расстояния внутри одного тензора -
функцию
mse_loss,
которая вычисляет среднеквадратичную ошибку -
функцию
l1_loss,
которая вычисляет L1-потерю