|TensorFlow 1 version||View source on GitHub|
LinearOperator representing the inverse of another operator.
Compat aliases for migration
See Migration guide for more details.
tf.linalg.LinearOperatorInversion( operator, is_non_singular=None, is_self_adjoint=None, is_positive_definite=None, is_square=None, name=None )
This operator represents the inverse of another operator.
# Create a 2 x 2 linear operator. operator = LinearOperatorFullMatrix([[1., 0.], [0., 2.]]) operator_inv = LinearOperatorInversion(operator) operator_inv.to_dense() ==> [[1., 0.] [0., 0.5]] operator_inv.shape ==> [2, 2] operator_inv.log_abs_determinant() ==> - log(2) x = ... Shape [2, 4] Tensor operator_inv.matmul(x) ==> Shape [2, 4] Tensor, equal to operator.solve(x)
The performance of
LinearOperatorInversion depends on the underlying
matmul are swapped, and determinant is
Matrix property hints
LinearOperator is initialized with boolean flags of the form
X = non_singular, self_adjoint, positive_definite, square.
These have the following meaning:
is_X == True, callers should expect the operator to have the property
X. This is a promise that should be fulfilled, but is not a runtime assert. For example, finite floating point precision may result in these promises being violated.
is_X == False, callers should expect the operator to not have
is_X == None(the default), callers should have no expectation either way.