mindspore.mint.addbmm
- mindspore.mint.addbmm(input, batch1, batch2, *, beta=1, alpha=1)[源代码]
对 batch1 和 batch2 中的矩阵相乘,按照第一维度累计相加,再与 input 相加。
说明
batch1 和 batch2 必须是三维的tensor,且包含相同数量的矩阵。
如果 batch1 是大小为 \((C, W, T)\) 的tensor, batch2 是大小为 \((C, T, H)\) 的tensor, 则 input 必须能够与大小为 \((W, H)\) 的tensor进行广播,且输出将是大小为 \((W, H)\) 的tensor。
若 beta 为0,那么 input 将会被忽略。
\[output = \beta input + \alpha (\sum_{i=0}^{b-1} {batch1_i @ batch2_i})\]警告
这是一个实验性API,后续可能修改或删除。
- 参数:
input (Tensor) - 输入tensor。
batch1 (Tensor) - 第一个将被乘batch矩阵。
batch2 (Tensor) - 第二个将被乘batch矩阵。
- 关键字参数:
beta (Union[int, float],可选) - input 的尺度因子。默认
1。alpha (Union[int, float],可选) - batch1 @ batch2 的尺度因子。默认
1。
- 返回:
Tensor
- 支持平台:
Ascend
样例:
>>> import mindspore >>> m = mindspore.mint.ones([3, 3]) >>> arr1 = mindspore.mint.arange(24.0).reshape((2, 3, 4)) >>> arr2 = mindspore.mint.arange(24.0).reshape((2, 4, 3)) >>> mindspore.mint.addbmm(m, arr1, arr2) Tensor(shape=[3, 3], dtype=Float32, value= [[ 9.49000000e+02, 1.00900000e+03, 1.06900000e+03], [ 1.28500000e+03, 1.37700000e+03, 1.46900000e+03], [ 1.62100000e+03, 1.74500000e+03, 1.86900000e+03]])