Minkowski Distance¶
Functional Interface¶
- torchmetrics.functional.pairwise_minkowski_distance(x, y=None, exponent=2, reduction=None, zero_diagonal=None)[source]
Calculate pairwise minkowski distances.
![d_{minkowski}(x,y,p) = ||x - y||_p = \sqrt[p]{\sum_{d=1}^D (x_d - y_d)^p}](_images/math/7ce5a4c74859679176fd2d453e9242d3ab0950f4.png)
If both
and
are passed in, the calculation will be performed pairwise between the rows of
and
. If only
is passed in, the calculation will be performed between the rows
of
.- Parameters:
exponent¶ (
Union[int,float]) – int or float larger than 1, exponent to which the difference between preds and target is to be raisedreduction¶ (
Optional[Literal['mean','sum','none',None]]) – reduction to apply along the last dimension. Choose between ‘mean’, ‘sum’ (applied along column dimension) or ‘none’, None for no reductionzero_diagonal¶ (
Optional[bool]) – if the diagonal of the distance matrix should be set to 0. If only x is given this defaults to True else if y is also given it defaults to False
- Return type:
- Returns:
A
[N,N]matrix of distances if onlyxis given, else a[N,M]matrix
Example
>>> import torch >>> from torchmetrics.functional.pairwise import pairwise_minkowski_distance >>> x = torch.tensor([[2, 3], [3, 5], [5, 8]], dtype=torch.float32) >>> y = torch.tensor([[1, 0], [2, 1]], dtype=torch.float32) >>> pairwise_minkowski_distance(x, y, exponent=4) tensor([[3.0092, 2.0000], [5.0317, 4.0039], [8.1222, 7.0583]]) >>> pairwise_minkowski_distance(x, exponent=4) tensor([[0.0000, 2.0305, 5.1547], [2.0305, 0.0000, 3.1383], [5.1547, 3.1383, 0.0000]])