- Neural Network Programming with TensorFlow
- Manpreet Singh Ghotra Rajdeep Dua
- 140字
- 2021-07-02 15:17:08
Matrix diagonals
Matrices that are diagonal in nature consist mostly of zeros and have non-zero entries only along the main diagonal. Not all diagonal matrices need to be square.
Using the diagonal part operation, we can get the diagonal of a given matrix, and to create a matrix with a given diagonal, we use the diag operation from tensorflow. The following example shows how to use diagonal operators on tensor objects:
import tensorflow as tf
mat = tf.constant([
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]
], dtype=tf.float32)
# get diagonal of the matrix
diag_mat = tf.diag_part(mat)
# create matrix with given diagonal
mat = tf.diag([1,2,3,4])
with tf.Session() as sess:
print(sess.run(diag_mat))
print(sess.run(mat))
The output of this is shown as follows:
[ 0. 4. 8.]
[[1 0 0 0][0 2 0 0] [0 0 3 0] [0 0 0 4]]