Función torch.cdist de PyTorch
Manual de referencia de PyTorch torch
torch.cdistEs una función en PyTorch utilizada para calcular la matriz de distancia euclidiana entre dos conjuntos de puntos. Calcula la distancia euclidiana entre cada punto de la primera entrada y cada punto de la segunda entrada, devolviendo una matriz de distancias.
Definición de la función
torch.cdist(input1, input2, p=2.0, compute_mode='use_mm_for_euclidean_dist')
Ejemplo de uso
Ejemplo
import torch
# Calcular la distancia euclidiana entre dos conjuntos de puntos
x = torch.tensor([[0, 0], [1, 1], [2, 2]]) # 3 puntos 2D
y = torch.tensor([[0, 0], [1, 0], [2, 0]]) # 3 puntos 2D
# Forma de la matriz de distancias: (3, 3)
distances = torch.cdist(x, y)
print("Punto x:")
print(x)
print("Punto y:")
print(y)
print("Matriz de distancia euclidiana:")
print(distances)
# Usar un valor de p diferente (distancia de Manhattan p=1)
dist_l1 = torch.cdist(x, y, p=1.0)
print("Distancia L1 (p=1):")
print(dist_l1)
# Usar p=infinito (distancia de Chebyshev)
dist_inf = torch.cdist(x, y, p=float('inf'))
print("Distancia de Chebyshev (p=inf):")
print(dist_inf)
# Calcular la distancia euclidiana entre dos conjuntos de puntos
x = torch.tensor([[0, 0], [1, 1], [2, 2]]) # 3 puntos 2D
y = torch.tensor([[0, 0], [1, 0], [2, 0]]) # 3 puntos 2D
# Forma de la matriz de distancias: (3, 3)
distances = torch.cdist(x, y)
print("Punto x:")
print(x)
print("Punto y:")
print(y)
print("Matriz de distancia euclidiana:")
print(distances)
# Usar un valor de p diferente (distancia de Manhattan p=1)
dist_l1 = torch.cdist(x, y, p=1.0)
print("Distancia L1 (p=1):")
print(dist_l1)
# Usar p=infinito (distancia de Chebyshev)
dist_inf = torch.cdist(x, y, p=float('inf'))
print("Distancia de Chebyshev (p=inf):")
print(dist_inf)
Otras extensiones