mindspore.ops.MatMul
- class mindspore.ops.MatMul(transpose_a=False, transpose_b=False)[源代码]
将矩阵 a 和矩阵 b 相乘。
其中,
表示输出的第i行和第j列元素。说明
当
不能被16整除时,算子在Ascend环境上的性能会比较差。输入Tensor的数据类型必须一致。
Ascend上,暂不支持float64类型。
- 参数:
transpose_a (bool,可选) - 如果为
True
,则在相乘之前转置 a。默认值:False
。transpose_b (bool,可选) - 如果为
True
,则在相乘之前转置 b。默认值:False
。
- 输入:
a (Tensor) - 要相乘的第一个Tensor。如果 transpose_a 为
False
,则该Tensor的shape为 ;否则,该Tensor的shape为 。b (Tensor) - 要相乘的第二个Tensor。如果 transpose_b 为
False
,则该Tensor的shape为 ;否则,该Tensor的shape为 。
- 输出:
Tensor,输出Tensor的shape为
。- 异常:
TypeError - transpose_a 或 transpose_b 不是bool。
TypeError - a 的dtype和 b 的dtype不一致。
ValueError - 矩阵 a 的列不等于矩阵 b 的行。
ValueError - a 或 b 的维度不等于2。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, ops >>> a = Tensor(np.ones(shape=[1, 3]), mindspore.float32) >>> b = Tensor(np.ones(shape=[3, 4]), mindspore.float32) >>> matmul = ops.MatMul() >>> output = matmul(a, b) >>> print(output) [[3. 3. 3. 3.]]