# tensorflow::ops::MatMul Class Reference

# tensorflow::
ops::
MatMul

`
#include <math_ops.h>
`


[Multiply](https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/multiply#classtensorflow_1_1ops_1_1_multiply)
the matrix "a" by the matrix "b".

## Summary


The inputs must be two-dimensional matrices and the inner dimension of "a" (after being transposed if transpose_a is true) must match the outer dimension of "b" (after being transposed if transposed_b is true).


* Note *
: The default kernel implementation for
[MatMul](https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul)
on GPUs uses cublas.


Args:

- scope: A [Scope](https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object

<br />


Optional attributes (see
`
https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/mat-mul/attrs#structtensorflow_1_1ops_1_1_mat_mul_1_1_attrs
`
):

- transpose_a: If true, "a" is transposed before multiplication.
- transpose_b: If true, "b" is transposed before multiplication.

<br />


Returns:

- `
  https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output
  ` : The product tensor.

<br />

| ### Constructors and Destructors ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1ab83040fb6ae9e56138c0f69b00760209 (const :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input a, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input b) ` ||
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1a34177e68c8f4fa1f1813814ce67d891c (const :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input a, :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input b, const https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/mat-mul/attrs#structtensorflow_1_1ops_1_1_mat_mul_1_1_attrs & attrs) ` ||

| ### Public attributes ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1ab873d083b82c9aa9485a303d40b97eb4 ` | ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1ab034be60cd7ec86407eb741bdfc5f379 ` | ` :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output ` |

| ### Public functions ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1a0336cd912c0b25144c3d9b57a626debf () const ` | ` ::tensorflow::Node * ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1abd3e6b08fb374614d203378c1dfaec97 () const ` | ` ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1a9882a2914eeb6bb488bf990e3240f05a () const ` | ` ` |

| ### Public static functions ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1adde997ec4038167a5e5e31ad805e2651 (bool x) ` | ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/mat-mul/attrs#structtensorflow_1_1ops_1_1_mat_mul_1_1_attrs ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul_1a94996492e8e4ff12164accf93c28dabd (bool x) ` | ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/mat-mul/attrs#structtensorflow_1_1ops_1_1_mat_mul_1_1_attrs ` |

| ### Structs ||
|---|---|
| [tensorflow:: ops:: MatMul:: Attrs](https://www.tensorflow.org/versions/r2.5/api_docs/cc/struct/tensorflow/ops/mat-mul/attrs) | Optional attribute setters for [MatMul](https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/mat-mul#classtensorflow_1_1ops_1_1_mat_mul) . |

## Public attributes

### operation

```
Operation operation
```

### product

```
::tensorflow::Output product
```

## Public functions

### MatMul

```
 MatMul(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input a,
  ::tensorflow::Input b
)
```

### MatMul

```
 MatMul(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input a,
  ::tensorflow::Input b,
  const MatMul::Attrs & attrs
)
```

### node

```
::tensorflow::Node * node() const 
```

### operator::tensorflow::Input

```
 operator::tensorflow::Input() const 
```

### operator::tensorflow::Output

```
 operator::tensorflow::Output() const 
```

## Public static functions

### TransposeA

```
Attrs TransposeA(
  bool x
)
```

### TransposeB

```
Attrs TransposeB(
  bool x
)
```