pairwise_distance¶
- paddle.nn.functional. pairwise_distance ( x, y, p=2., epsilon=1e-6, keepdim=False, name=None ) [源代码] ¶
计算两组向量(输入 x
、y
)两两之间的距离。该距离通过 p 范数计算:
\[\Vert x \Vert _p = \left( \sum_{i=1}^n \vert x_i \vert ^ p \right ) ^ {1/p}.\]
参数¶
x (Tensor) - 形状为 \([N, D]\) 或 \([D]\) 的张量,其中 \(N\) 是批大小,\(D\) 是向量的维度,数据类型为 float32 或 float64。
y (Tensor) - 形状为 \([N, D]\) 或 \([D]\) 的张量,其中 \(N\) 是批大小,\(D\) 是向量的维度,数据类型为 float32 或 float64。
p (float,可选) - 指定 p 阶的范数。默认值为 \(2.0\)。
epsilon (float,可选) - 添加到分母的一个很小值,避免发生除零错误。默认值为 \(1e-6\)。
keepdim (bool,可选) - 是否保留输出张量减少的维度。输出结果相对于 \(|x-y|\) 的结果减少一维,除非
keepdim
为 True,默认值为 False。name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
Tensor。数据类型与
x
、y
相同。 - 如果keepdim
为 True,则形状为 \([N, 1]\) 或 \([1]\),依据输入中是否有数据形状为 \([N, D]\)。 - 如果keepdim
为 False,则形状为 \([N]\) 或 \([]\),依据输入中是否有数据形状为 \([N, D]\)。
代码示例¶
import paddle
x = paddle.to_tensor([[1., 3.], [3., 5.]], dtype=paddle.float64)
y = paddle.to_tensor([[5., 6.], [7., 8.]], dtype=paddle.float64)
distance = paddle.nn.functional.pairwise_distance(x, y)
print(distance.numpy()) # [5. 5.]