Функция torch.cdist PyTorch
Справочное руководство Pytorch torch
torch.cdistЭто функция в PyTorch, используемая для вычисления матрицы евклидовых расстояний между двумя наборами точек. Она вычисляет евклидово расстояние между каждой точкой первого входа и каждой точкой второго входа, возвращая матрицу расстояний.
Определение функции
torch.cdist(input1, input2, p=2.0, compute_mode='use_mm_for_euclidean_dist')
Пример использования
Пример
import torch
# Вычислить евклидово расстояние между двумя наборами точек
x = torch.tensor([[0, 0], [1, 1], [2, 2]]) # 3 2D-точки
y = torch.tensor([[0, 0], [1, 0], [2, 0]]) # 3 2D-точки
# Форма матрицы расстояний: (3, 3)
distances = torch.cdist(x, y)
print("Точка x:")
print(x)
print("Точка y:")
print(y)
print("Матрица евклидовых расстояний:")
print(distances)
# Использовать другое значение p (манхэттенское расстояние p=1)
dist_l1 = torch.cdist(x, y, p=1.0)
print("Расстояние L1 (p=1):")
print(dist_l1)
# Использовать p=infinity (расстояние Чебышёва)
dist_inf = torch.cdist(x, y, p=float('inf'))
print("Расстояние Чебышёва (p=inf):")
print(dist_inf)
# Вычислить евклидово расстояние между двумя наборами точек
x = torch.tensor([[0, 0], [1, 1], [2, 2]]) # 3 2D-точки
y = torch.tensor([[0, 0], [1, 0], [2, 0]]) # 3 2D-точки
# Форма матрицы расстояний: (3, 3)
distances = torch.cdist(x, y)
print("Точка x:")
print(x)
print("Точка y:")
print(y)
print("Матрица евклидовых расстояний:")
print(distances)
# Использовать другое значение p (манхэттенское расстояние p=1)
dist_l1 = torch.cdist(x, y, p=1.0)
print("Расстояние L1 (p=1):")
print(dist_l1)
# Использовать p=infinity (расстояние Чебышёва)
dist_inf = torch.cdist(x, y, p=float('inf'))
print("Расстояние Чебышёва (p=inf):")
print(dist_inf)
Другие расширения