mindspore.ops.cdist
- mindspore.ops.cdist(x, y, p=2.0)[源代码]
计算两个Tensor每对列向量之间的p-norm距离。
- 参数:
x (Tensor) - 输入Tensor,shape为 \((B, P, M)\) ,B维度为0时该维度被忽略,shape为 \((P, M)\) 。在GPU上支持数据类型为[float32, float64],在CPU上支持[float32]。
y (Tensor) - 输入Tensor,shape为 \((B, R, M)\) ,与 x 的数据类型一致。
p (float,可选) - 计算向量对p-norm距离的P值,P∈[0,∞]。默认值:2.0。
- 返回:
Tensor,p-范数距离,数据类型与 x 一致,shape为(B, P, R)。
- 异常:
TypeError - x 或 y 不是Tensor。
TypeError - x 或 y 的数据类型在GPU环境不是float32或者float64,在CPU环境不是float32。
TypeError - p 不是float32。
ValueError - p 是负数。
ValueError - x 与 y 维度不同。
ValueError - x 与 y 的维度既不是2,也不是3。
ValueError - 单批次训练下 x 和 y 的shape不一样。
ValueError - x 和 y 的列数不一样。
- 支持平台:
Ascend
GPU
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]]]