mindspore.ops.pdist
- mindspore.ops.pdist(x, p=2.0)[源代码]
计算输入中每对行向量之间的p-范数距离。如果输入Tensor x 的shape为 \((N, M)\),那么输出就是一个shape为 \((N * (N - 1) / 2,)\) 的Tensor。 如果输入 x 的shape为 \((*B, N, M)\),那么输出就是一个shape为 \((*B, N * (N - 1) / 2)\) 的Tensor。
\[y[n] = \sqrt[p]{{\mid x_{i} - x_{j} \mid}^p}\]其中 \(x_{i}, x_{j}\) 是输入中两个不同的行向量。
- 参数:
x (Tensor) - 输入Tensor x ,其shape为 \((*B, N, M)\),其中 \(*B\) 表示批处理大小,可以是多维度。类型:float16,float32或float64。
p (float) - p-范数距离的p值,\(p∈[0,∞]\)。默认值:2.0。
- 返回:
Tensor,类型与 x 一致。
- 异常:
TypeError - x 不是Tensor。
TypeError - x 的数据类型不是float16,float32,float64。
TypeError - p 不是float。
ValueError - p 是负数。
ValueError - x 的维度小于2。
- 支持平台:
CPU
样例:
>>> x = Tensor(np.array([[1.0, 1.0], [2.0, 2.0], [3.0, 3.0]]).astype(np.float32)) >>> y = ops.pdist(x, p=2.0) >>> print(y) [1.4142135 2.828427 1.4142135]