pdist

paddle.pdist(x, p=2.0, name=None):

计算输入形状为 N x M 的 Tensor 中 N 个向量两两组合(pairwise)的 p 范数。

参数

  • x (Tensor) - 输入的 Tensor,形状为 \(N \times M\)

  • p (float, 可选) - 计算每个向量对之间的 p 范数距离的值。默认值为 \(2.0\)

  • name (str, 可选) - 具体用法请参见 Name ,一般无需设置,默认值为 None。

返回

Tensor,数据类型与输入张量相同,输出的形状为 \(N \times (N-1) \div 2\)

代码示例

>>> import paddle
>>> paddle.seed(2023)
>>> a = paddle.randn([4, 5])
>>> print(a)
Tensor(shape=[4, 5], dtype=float32, place=Place(cpu), stop_gradient=True,
       [[ 0.06132207,  1.11349595,  0.41906244, -0.24858207, -1.85169315],
        [-1.50370061,  1.73954511,  0.13331604,  1.66359663, -0.55764782],
        [-0.59911072, -0.57773495, -1.03176904, -0.33741450, -0.29695082],
        [-1.50258386,  0.67233968, -1.07747352,  0.80170447, -0.06695852]])
>>> pdist_out=paddle.pdist(a)
>>> print(pdist_out)
Tensor(shape=[6], dtype=float32, place=Place(cpu), stop_gradient=True,
       [2.87295413, 2.79758120, 3.02793980, 3.40844536, 1.89435327, 1.93171620])