mindspore.ops.batch_dot
- mindspore.ops.batch_dot(x1, x2, axes=None)[源代码]
计算 x1 和 x2 中的向量点积。
说明
x1 和 x2 的第零维表示batch数量, x1 和 x2 数据类型为float32且秩大于或等于2。
- 参数:
x1 (Tensor) - 第一个batch向量。
x2 (Tensor) - 第一个batch向量。
axes (Union[int, tuple(int), list(int)]) - 指定计算轴。默认
None
。
- 返回:
Tensor
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> # case 1: axes is a tuple(axes of `x1` , axes of `x2` ) >>> x1 = mindspore.ops.ones([2, 2, 3]) >>> x2 = mindspore.ops.ones([2, 3, 2]) >>> axes = (-1, -2) >>> output = mindspore.ops.batch_dot(x1, x2, axes) >>> print(output) [[[3. 3.] [3. 3.]] [[3. 3.] [3. 3.]]] >>> print(output.shape) (2, 2, 2) >>> x1 = mindspore.ops.ones([2, 2]), mindspore.float32) >>> x2 = mindspore.ops.ones([2, 3, 2]), mindspore.float32) >>> axes = (1, 2) >>> output = ops.batch_dot(x1, x2, axes) >>> print(output) [[2. 2. 2.] [2. 2. 2.]] >>> print(output.shape) (2, 3) >>> >>> # case 2: axes is None >>> x1 = mindspore.ops.ones([6., 2., 3., 4.]) >>> x2 = mindspore.ops.ones([6., 5., 4., 8.]) >>> output = mindspore.ops.batch_dot(x1, x2) >>> print(output.shape) (6, 2, 3, 5, 8) >>> >>> # case 3: axes is a int data. >>> x1 = mindspore.ops.ones([2, 2, 4]) >>> x2 = mindspore.ops.ones([2, 5, 4, 5]) >>> output = mindspore.ops.batch_dot(x1, x2, 2) >>> print(output.shape) (2, 2, 5, 5)