mindspore.ops.batch_dot
- mindspore.ops.batch_dot(x1, x2, axes=None)[source]
Computation of batch dot product between samples in two tensors containing batch dims.
\[output = x1[batch, :] * x2[batch, :]\]- Inputs:
x1 (Tensor) - First tensor in Batch Dot op with datatype float32
x2 (Tensor) - Second tensor in Batch Dot op with datatype float32. x2’s datatype should be same as x1’s.
axes (Union[int, tuple(int), list(int)]) - Single value or tuple/list of length 2 with dimensions specified for a and b each. If single value N passed, automatically picks up last N dims from a input shape and last N dims from b input shape in order as axes for each respectively.
- Outputs:
Tensor, batch dot product of x1 and x2. The Shape of output for input shapes (batch, d1, axes, d2) and (batch, d3, axes, d4) is (batch, d1, d2, d3, d4)
- Raises
TypeError – If type of x1 and x2 are not the same.
TypeError – If dtype of x1 or x2 is not float32.
ValueError – If rank of x1 or x2 less than 2.
ValueError – If batch dim used in axes.
ValueError – If len(axes) less than 2.
ValueError – If axes is not one of those: None, int, (int, int).
ValueError – If axes reversed from negative int is too low for dimensions of input arrays.
ValueError – If axes value is too high for dimensions of input arrays.
ValueError – If batch size of x1 and x2 are not the same.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> input_x1 = Tensor(np.ones(shape=[2, 2, 3]), mindspore.float32) >>> input_x2 = Tensor(np.ones(shape=[2, 3, 2]), mindspore.float32) >>> axes = (-1, -2) >>> output = C.batch_dot(input_x1, input_x2, axes) >>> print(output) [[[3. 3.] [3. 3.]] [[3. 3.] [3. 3.]]]