MatMul¶
MatMul - 13¶
Version¶
name: MatMul (GitHub)
domain:
mainsince_version:
13function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 13.
Summary¶
Matrix product that behaves like numpy.matmul.
Inputs¶
A (heterogeneous) - T:
N-dimensional matrix A
B (heterogeneous) - T:
N-dimensional matrix B
Outputs¶
Y (heterogeneous) - T:
Matrix multiply results from A * B
Type Constraints¶
T in (
tensor(bfloat16),tensor(double),tensor(float),tensor(float16),tensor(int32),tensor(int64),tensor(uint32),tensor(uint64)):Constrain input and output types to float/int tensors.
Examples¶
default¶
import numpy as np
import onnx
node = onnx.helper.make_node(
"MatMul",
inputs=["a", "b"],
outputs=["c"],
)
# 2d
a = np.random.randn(3, 4).astype(np.float32)
b = np.random.randn(4, 3).astype(np.float32)
c = np.matmul(a, b)
expect(node, inputs=[a, b], outputs=[c], name="test_matmul_2d")
# 3d
a = np.random.randn(2, 3, 4).astype(np.float32)
b = np.random.randn(2, 4, 3).astype(np.float32)
c = np.matmul(a, b)
expect(node, inputs=[a, b], outputs=[c], name="test_matmul_3d")
# 4d
a = np.random.randn(1, 2, 3, 4).astype(np.float32)
b = np.random.randn(1, 2, 4, 3).astype(np.float32)
c = np.matmul(a, b)
expect(node, inputs=[a, b], outputs=[c], name="test_matmul_4d")
# broadcasting
a = np.random.randn(3, 1, 3, 4).astype(np.float32)
b = np.random.randn(1, 2, 4, 2).astype(np.float32)
c = np.matmul(a, b)
expect(node, inputs=[a, b], outputs=[c], name="test_matmul_bcast")
# 1d + 3d
a = np.random.randn(4).astype(np.float32)
b = np.random.randn(2, 4, 1).astype(np.float32)
c = np.matmul(a, b)
expect(node, inputs=[a, b], outputs=[c], name="test_matmul_1d_3d")
# 3d + 1d
a = np.random.randn(1, 2, 4, 3).astype(np.float32)
b = np.random.randn(3).astype(np.float32)
c = np.matmul(a, b)
expect(node, inputs=[a, b], outputs=[c], name="test_matmul_4d_1d")
# 1d + 1d
a = np.random.randn(3).astype(np.float32)
b = np.random.randn(3).astype(np.float32)
c = np.matmul(a, b)
expect(node, inputs=[a, b], outputs=[c], name="test_matmul_1d_1d")
MatMul - 9¶
Version¶
name: MatMul (GitHub)
domain:
mainsince_version:
9function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 9.
Summary¶
Matrix product that behaves like numpy.matmul.
Inputs¶
A (heterogeneous) - T:
N-dimensional matrix A
B (heterogeneous) - T:
N-dimensional matrix B
Outputs¶
Y (heterogeneous) - T:
Matrix multiply results from A * B
Type Constraints¶
T in (
tensor(double),tensor(float),tensor(float16),tensor(int32),tensor(int64),tensor(uint32),tensor(uint64)):Constrain input and output types to float/int tensors.
MatMul - 1¶
Version¶
name: MatMul (GitHub)
domain:
mainsince_version:
1function:
Falsesupport_level:
SupportType.COMMONshape inference:
True
This version of the operator has been available since version 1.
Summary¶
Matrix product that behaves like numpy.matmul.
Inputs¶
A (heterogeneous) - T:
N-dimensional matrix A
B (heterogeneous) - T:
N-dimensional matrix B
Outputs¶
Y (heterogeneous) - T:
Matrix multiply results from A * B
Type Constraints¶
T in (
tensor(double),tensor(float),tensor(float16)):Constrain input and output types to float tensors.