The inverse LU decomposition, X == lu_reconstruct(*tf.linalg.lu(X))
.
tfp.substrates.numpy.math.lu_reconstruct(
lower_upper, perm, validate_args=False, name=None
)
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.
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_reconstruct').
|
Returns |
x
|
The original input to tf.linalg.lu , i.e., x as in,
lu_reconstruct(*tf.linalg.lu(x)) .
|
Examples
import numpy as np
from tensorflow_probability.python.internal.backend import numpy as tf
import tensorflow_probability as tfp; tfp = tfp.substrates.numpy
x = [[[3., 4], [1, 2]],
[[7., 8], [3, 4]]]
x_reconstructed = tfp.math.lu_reconstruct(*tf.linalg.lu(x))
tf.assert_near(x, x_reconstructed)
# ==> True