torch.cdist
-
torch.cdist(x1, x2, p=2.0, compute_mode='use_mm_for_euclid_dist_if_necessary')[source] -
Вычисляет пакетную p-норму расстояния между каждой парой двух наборов векторов-строк.
- Параметры:
-
- x1 (Тензор) – входной тензор формы .
- x2 (Тензор) – входной тензор формы .
- p (float) – значение p для p-нормы расстояния для расчёта между каждой парой векторов .
- compute_mode (str) – ‘use_mm_for_euclid_dist_if_necessary’ - будет использовать подход матричного умножения для вычисления евклидового расстояния (p = 2), если P > 25 или R > 25 ‘use_mm_for_euclid_dist’ - всегда будет использовать подход матричного умножения для вычисления евклидового расстояния (p = 2) ‘donot_use_mm_for_euclid_dist’ - никогда не будет использовать подход матричного умножения для вычисления евклидового расстояния (p = 2) По умолчанию: use_mm_for_euclid_dist_if_necessary.
- Возвращаемое значение:
Если у x1 форма и у x2 форма , то результат будет иметь форму .
Эта функция эквивалентна
scipy.spatial.distance.cdist(input,’minkowski’, p=p)если . Когда она эквивалентнаscipy.spatial.distance.cdist(input, ‘hamming’) * M. Когда , наиболее близкой функцией scipy являетсяscipy.spatial.distance.cdist(xn, lambda x, y: np.abs(x - y).max()).Пример
>>> a = torch.tensor([[0.9041, 0.0196], [-0.3108, -2.4423], [-0.4821, 1.059]]) >>> a tensor([[ 0.9041, 0.0196], [-0.3108, -2.4423], [-0.4821, 1.0590]]) >>> b = torch.tensor([[-2.1763, -0.4713], [-0.6986, 1.3702]]) >>> b tensor([[-2.1763, -0.4713], [-0.6986, 1.3702]]) >>> torch.cdist(a, b, p=2) tensor([[3.1193, 2.0959], [2.7138, 3.8322], [2.2830, 0.3791]])
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.cdist.html