mindspore.ops.baddbmm

查看源文件
mindspore.ops.baddbmm(input, batch1, batch2, beta=1, alpha=1)[源代码]

对输入的两个三维矩阵batch1与batch2相乘,并将结果与input相加。 计算公式定义如下:

outi=βinputi+α(batch1i@batch2i)
参数:
  • input (Tensor) - 输入Tensor,当batch1是 (C,W,T) 的Tensor而且batch2是一个 (C,T,H) 的Tensor时,输入必须为可以被广播为 (C,W,H) 形状的Tensor。

  • batch1 (Tensor) - 公式中的 batch1 。必须为3-D的Tensor,类型与 input 一致。

  • batch2 (Tensor) - 公式中的 batch2 。必须为3-D的Tensor,类型与 input 一致。

  • beta (Union[float, int], 可选) - 输入的乘数。默认值: 1

  • alpha (Union[float, int],可选) - batch1@batch2 的系数,默认值: 1 。当输入的类型不是 FloatTensor 时,参数 betaalpha 必须是整数,否则它们应该是实数。

返回:

Tensor,其数据类型与 input 相同,维度为 (C,W,H)

异常:
  • TypeError - inputbatch1batch2 的类型不是Tensor。

  • TypeError - inputbatch1batch2 数据类型不一致。

  • TypeError - 对于类型为 FloatTensorDoubleTensor 的输入,参数 betaalpha 应该是实数,否则应该是整数。

  • TypeError - betaalpha 不是实数类型。

  • ValueError - batch1batch2 的不是三维Tensor。

支持平台:

Ascend GPU CPU

样例:

>>> 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.]]]