mindspore.ops.baddbmm

mindspore.ops.baddbmm(input, batch1, batch2, beta=1, alpha=1)[source]

The result is the sum of the input and a batch matrix-matrix product of matrices in batch1 and batch2. The formula is defined as follows:

\[\text{out}_{i} = \beta \text{input}_{i} + \alpha (\text{batch1}_{i} \mathbin{@} \text{batch2}_{i})\]
Parameters
  • input (Tensor) – The input Tensor. When batch1 is a \((C, W, T)\) Tensor and batch2 is a \((C, T, H)\) Tensor, input must be broadcastable with \((C, W, H)\) Tensor.

  • batch1 (Tensor) – \(batch1\) in the above formula. Must be 3-D Tensor, dtype is same as input.

  • batch2 (Tensor) – \(batch2\) in the above formula. Must be 3-D Tensor, dtype is same as input.

  • beta (Union[float, int], optional) – multiplier for input. Default: 1 .

  • alpha (Union[float, int], optional) – multiplier for \(batch1 @ batch2\). Default: 1 . Arguments beta and alpha must be integers when inputs of type not FloatTensor, otherwise they should be a real number.

Returns

Tensor, has the same dtype as input, shape will be \((C, W, H)\).

Raises
  • TypeError – The type of input, batch1, batch2 is not Tensor.

  • TypeError – The types of input, batch1, batch2 are different.

  • TypeError – For inputs of type FloatTensor or DoubleTensor, arguments beta and alpha not be real numbers, otherwise not be integers.

  • TypeError – For Baddbmm, attributes alpha and beta are not real numbers

  • ValueError – If batch1 and batch2 are not 3-D tensors.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> input = Tensor(np.ones([1, 3, 3]).astype(np.float32))
>>> batch1 = Tensor(np.ones([1, 3, 4]).astype(np.float32))
>>> batch2 = Tensor(np.ones([1, 4, 3]).astype(np.float32))
>>> output = ops.baddbmm(input, batch1, batch2)
>>> print(output)
[[[5. 5. 5.]
  [5. 5. 5.]
  [5. 5. 5.]]]