mindspore.mint.cdist

查看源文件
mindspore.mint.cdist(x1, x2, p=2.0, compute_mode='use_mm_for_euclid_dist_if_necessary')[源代码]

计算两个tensor每对行向量之间的p-norm距离。

警告

这是一个实验性API,后续可能修改或删除。

说明

Ascend上支持的输入数据类型为mindspore.float16和mindspore.float32。

参数:
  • x1 (Tensor) - 输入tensor,shape为 \((B, P, M)\)\(B\) 表示0或者正整数。 \(B\) 维度为0时该维度被忽略,shape为 \((P, M)\)

  • x2 (Tensor) - 输入tensor,shape为 \((B, R, M)\) ,与 x1 的数据类型一致。

  • p (float,可选) - 计算向量对p-norm距离的P值,P >= 0。默认 2.0

  • compute_mode (str,可选) - 指定计算模式。目前设置此参数无效果。默认 'use_mm_for_euclid_dist_if_necessary'

返回:

Tensor,p-范数距离,数据类型与 x1 一致,shape为 \((B, P, R)\)

异常:
  • ValueError - p 是负数。

  • ValueError - x1x2 维度不同。

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

  • ValueError - x1x2 的批次维无法广播。

  • ValueError - x1x2 的列数不一样。

支持平台:

Ascend

样例:

>>> import mindspore
>>> x = mindspore.tensor([[[1.0, 1.0], [2.0, 2.0]]], dtype=mindspore.float32)
>>> y = mindspore.tensor([[[3.0, 3.0], [3.0, 3.0]]], dtype=mindspore.float32)
>>> mindspore.mint.cdist(x, y, 2.0)
Tensor(shape=[1, 2, 2], dtype=Float32, value=
[[[ 2.82842708e+00,  2.82842708e+00],
  [ 1.41421354e+00,  1.41421354e+00]]])