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 - x1 与 x2 维度不同。
ValueError - x1 与 x2 的维度既不是2,也不是3。
ValueError - x1 和 x2 的批次维无法广播。
ValueError - x1 和 x2 的列数不一样。
- 支持平台:
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]]])