|TensorFlow 1 version||View source on GitHub|
LinearOperator acting like a [batch] zero matrix.
Compat aliases for migration
See Migration guide for more details.
tf.linalg.LinearOperatorZeros( num_rows, num_columns=None, batch_shape=None, dtype=None, is_non_singular=False, is_self_adjoint=True, is_positive_definite=False, is_square=True, assert_proper_shapes=False, name='LinearOperatorZeros' )
This operator acts like a [batch] zero matrix
A with shape
[B1,...,Bb, N, M] for some
b >= 0. The first
b indices index a
batch member. For every batch index
A[i1,...,ib, : :] is
N x M matrix. This matrix
A is not materialized, but for
purposes of broadcasting this shape will be relevant.
LinearOperatorZeros is initialized with
num_rows, and optionally
, then this operator will be initialized as a square matrix. Ifbatch_shape
, this operator efficiently passes through all
arguments. Ifbatch_shape` is provided, broadcasting may occur, which will
require making copies.
# Create a 2 x 2 zero matrix. operator = LinearOperatorZero(num_rows=2, dtype=tf.float32) operator.to_dense() ==> [[0., 0.] [0., 0.]] operator.shape ==> [2, 2] operator.determinant() ==> 0. x = ... Shape [2, 4] Tensor operator.matmul(x) ==> Shape [2, 4] Tensor, same as x. # Create a 2-batch of 2x2 zero matrices operator = LinearOperatorZeros(num_rows=2, batch_shape=) operator.to_dense() ==> [[[0., 0.] [0., 0.]], [[0., 0.] [0., 0.]]] # Here, even though the operator has a batch shape, the input is the same as # the output, so x can be passed through without a copy. The operator is able # to detect that no broadcast is necessary because both x and the operator # have statically defined shape. x = ... Shape [2, 2, 3] operator.matmul(x) ==> Shape [2, 2, 3] Tensor, same as tf.zeros_like(x) # Here the operator and x have different batch_shape, and are broadcast. # This requires a copy, since the output is different size than the input. x = ... Shape [1, 2, 3] operator.matmul(x) ==> Shape [2, 2, 3] Tensor, equal to tf.zeros_like([x, x])
This operator acts on [batch] matrix with compatible shape.
x is a batch matrix with compatible shape for
operator.shape = [B1,...,Bb] + [N, M], with b >= 0 x.shape = [C1,...,Cc] + [M, R], and [C1,...,Cc] broadcasts with [B1,...,Bb] to [D1,...,Dd]
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.
Scalar non-negative integer
Scalar non-negative integer
||Data type of the matrix that this operator represents.|
||Expect that this operator is non-singular.|
||Expect that this operator is equal to its hermitian transpose.|
||Expect that this|