mindspore.ops.cdist

mindspore.ops.cdist(x, y, p=2.0)[源代码]

批量计算两个Tensor每一批次所有向量两两之间的p-范数距离。

参数:
  • x (Tensor) - 输入tensor x,输入shape [B, P, M],B维度可以为0,即shape为 [P, M]。

  • y (Tensor) - 输入tensor y,输入shape [B, R, M]。

  • p (float) - P -范数距离的P值,P∈[0,∞]。默认值:2.0。

返回:

Tensor,p-范数距离,shape为[B, P, R]。

异常:
  • TypeError - input_xinput_x 不是Tensor。

  • TypeError - input_xinput_y 的数据类型不是float16,也不是float32。

  • TypeError - p 不是float32。

  • ValueError - p 是负数。

  • ValueError - input_xinput_y 维度不同。

  • ValueError - input_xinput_y 的维度不是2,也不是3。

支持平台:

Ascend CPU

样例:

>>> x = Tensor(np.array([[[1.0, 1.0], [2.0, 2.0]]]).astype(np.float32))
>>> y = Tensor(np.array([[[3.0, 3.0], [3.0, 3.0]]]).astype(np.float32))
>>> output = ops.cdist(x, y, 2.0)
>>> print(output)
[[[2.8284273 2.8284273]
  [1.4142137 1.4142137]]]