# tensorflow::ops::DiagPart Class Reference

# tensorflow::
ops::
DiagPart

`
#include <array_ops.h>
`


Returns the diagonal part of the tensor.

## Summary


This operation returns a tensor with the
`
diagonal
`
part of the
`
input
`
. The
`
diagonal
`
part is computed as follows:


Assume
`
input
`
has dimensions
`
[D1,..., Dk, D1,..., Dk]
`
, then the output is a tensor of rank
`
k
`
with dimensions
`
[D1,..., Dk]
`
where:


`
diagonal[i1,..., ik] = input[i1, ..., ik, i1,..., ik]
`
.


For example:


```
# 'input' is [[1, 0, 0, 0]
              [0, 2, 0, 0]
              [0, 0, 3, 0]
              [0, 0, 0, 4]]
```

<br />


```
tf.diag_part(input) ==> [1, 2, 3, 4]
```

<br />


Args:

- scope: A [Scope](https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object
- input: Rank k tensor where k is even and not zero.

<br />


Returns:

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

<br />

| ### Constructors and Destructors ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/diag-part#classtensorflow_1_1ops_1_1_diag_part_1a722e0fbf9139d42128d88361fcceffbb (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 input) ` ||

| ### Public attributes ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/diag-part#classtensorflow_1_1ops_1_1_diag_part_1a5c2700969d74c5dcd441f482f69f0575 ` | ` :: https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/diag-part#classtensorflow_1_1ops_1_1_diag_part_1a4a4d8b4387110108a77726a4e37f75ef ` | ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation ` |

| ### Public functions ||
|---|---|
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/diag-part#classtensorflow_1_1ops_1_1_diag_part_1a7f5dfaa792daf4eebe39b740aaa5a117 () const ` | ` ::tensorflow::Node * ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/diag-part#classtensorflow_1_1ops_1_1_diag_part_1aef16d4b10102516c099741c0935952e9 () const ` | ` ` |
| ` https://www.tensorflow.org/versions/r2.5/api_docs/cc/class/tensorflow/ops/diag-part#classtensorflow_1_1ops_1_1_diag_part_1a3ffd8291e65d1b66c89fbcc0bb34225e () const ` | ` ` |

## Public attributes

### diagonal

```
::tensorflow::Output diagonal
```

### operation

```
Operation operation
```

## Public functions

### DiagPart

```
 DiagPart(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input
)
```

### node

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

### operator::tensorflow::Input

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

### operator::tensorflow::Output

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