# 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 />

Arguments:

- scope: A [Scope](https://www.tensorflow.org/versions/r2.3/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.3/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output`: The extracted diagonal.

<br />

| ### Constructors and Destructors ||
|---|---|
| `https://www.tensorflow.org/versions/r2.3/api_docs/cc/class/tensorflow/ops/diag-part#classtensorflow_1_1ops_1_1_diag_part_1a722e0fbf9139d42128d88361fcceffbb(const ::https://www.tensorflow.org/versions/r2.3/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, ::https://www.tensorflow.org/versions/r2.3/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input input)` ||

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

| ### Public functions ||
|---|---|
| `https://www.tensorflow.org/versions/r2.3/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.3/api_docs/cc/class/tensorflow/ops/diag-part#classtensorflow_1_1ops_1_1_diag_part_1aef16d4b10102516c099741c0935952e9() const ` | ` `` ` |
| `https://www.tensorflow.org/versions/r2.3/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 
```