mindspore.ops.baddbmm
- mindspore.ops.baddbmm(input, batch1, batch2, beta=1, alpha=1)[源代码]
对输入的两个三维矩阵batch1与batch2相乘,并将结果与input相加。 计算公式定义如下:
\[\text{out}_{i} = \beta \text{input}_{i} + \alpha (\text{batch1}_{i} \mathbin{@} \text{batch2}_{i})\]- 参数:
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 时,参数 beta 和 alpha 必须是整数。
- 返回:
Tensor,其数据类型与 input 相同,维度为 \((C, W, H)\)。
- 异常:
TypeError - input 、 batch1 或 batch2 的类型不是Tensor。
TypeError - input 、 batch1 或 batch2 数据类型不一致。
TypeError - 参数 beta 和 alpha 应该是实数。对于类型为 FloatTensor 或 DoubleTensor 的输入,参数 beta 和 alpha 应该是整数。
TypeError - beta 、 alpha 不是实数类型。
ValueError - batch1 或 batch2 的不是三维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.]]]