Missed TensorFlow Dev Summit? Check out the video playlist.

tf.linalg.lu_matrix_inverse

Computes the inverse given the LU decomposition(s) of one or more matrices.

``````tf.linalg.lu_matrix_inverse(
lower_upper, perm, validate_args=False, name=None
)
``````

This op is conceptually identical to,

``````inv_X = tf.lu_matrix_inverse(*tf.linalg.lu(X))
tf.assert_near(tf.matrix_inverse(X), inv_X)
# ==> True
``````

Args:

• `lower_upper`: `lu` as returned by `tf.linalg.lu`, i.e., if ```matmul(P, matmul(L, U)) = X``` then `lower_upper = L + U - eye`.
• `perm`: `p` as returned by `tf.linag.lu`, i.e., if ```matmul(P, matmul(L, U)) = X``` then `perm = argmax(P)`.
• `validate_args`: Python `bool` indicating whether arguments should be checked for correctness. Note: this function does not verify the implied matrix is actually invertible, even when `validate_args=True`. Default value: `False` (i.e., don't validate arguments).
• `name`: Python `str` name given to ops managed by this object. Default value: `None` (i.e., 'lu_matrix_inverse').

Returns:

• `inv_x`: The matrix_inv, i.e., `tf.matrix_inverse(tf.linalg.lu_reconstruct(lu, perm))`.

Examples

``````import numpy as np
import tensorflow as tf
import tensorflow_probability as tfp

x = [[[3., 4], [1, 2]],
[[7., 8], [3, 4]]]
inv_x = tf.linalg.lu_matrix_inverse(*tf.linalg.lu(x))
tf.assert_near(tf.matrix_inverse(x), inv_x)
# ==> True
``````