T
- data type for output()
output@Operator(group="linalg") public final class TriangularSolve<T> extends PrimitiveOp implements Operand<T>
`matrix` is a tensor of shape `[..., M, M]` whose inner-most 2 dimensions form square matrices. If `lower` is `True` then the strictly upper triangular part of each inner-most matrix is assumed to be zero and not accessed. If `lower` is False then the strictly lower triangular part of each inner-most matrix is assumed to be zero and not accessed. `rhs` is a tensor of shape `[..., M, K]`.
The output is a tensor of shape `[..., M, K]`. If `adjoint` is `True` then the innermost matrices in `output` satisfy matrix equations `matrix[..., :, :] * output[..., :, :] = rhs[..., :, :]`. If `adjoint` is `False` then the strictly then the innermost matrices in `output` satisfy matrix equations `adjoint(matrix[..., i, k]) * output[..., k, j] = rhs[..., i, j]`.
Example:
a = tf.constant([[3, 0, 0, 0],
[2, 1, 0, 0],
[1, 0, 1, 0],
[1, 1, 1, 1]], dtype=tf.float32)
b = tf.constant([[4],
[2],
[4],
[2]], dtype=tf.float32)
x = tf.linalg.triangular_solve(a, b, lower=True)
x
# <tf.Tensor: id=257, shape=(4, 1), dtype=float32, numpy=
# array([[ 1.3333334 ],
# [-0.66666675],
# [ 2.6666665 ],
# [-1.3333331 ]], dtype=float32)>
# in python3 one can use `a@x`
tf.matmul(a, x)
# <tf.Tensor: id=263, shape=(4, 1), dtype=float32, numpy=
# array([[4. ],
# [2. ],
# [4. ],
# [1.9999999]], dtype=float32)>
Modifier and Type | Class and Description |
---|---|
static class |
TriangularSolve.Options
Optional attributes for
TriangularSolve |
operation
Modifier and Type | Method and Description |
---|---|
static TriangularSolve.Options |
adjoint(Boolean adjoint) |
Output<T> |
asOutput()
Returns the symbolic handle of a tensor.
|
static <T> TriangularSolve<T> |
create(Scope scope,
Operand<T> matrix,
Operand<T> rhs,
TriangularSolve.Options... options)
Factory method to create a class wrapping a new TriangularSolve operation.
|
static TriangularSolve.Options |
lower(Boolean lower) |
Output<T> |
output()
Shape is `[..., M, K]`.
|
equals, hashCode, op, toString
public static <T> TriangularSolve<T> create(Scope scope, Operand<T> matrix, Operand<T> rhs, TriangularSolve.Options... options)
scope
- current scopematrix
- Shape is `[..., M, M]`.rhs
- Shape is `[..., M, K]`.options
- carries optional attributes valuespublic static TriangularSolve.Options lower(Boolean lower)
lower
- Boolean indicating whether the innermost matrices in `matrix` are
lower or upper triangular.public static TriangularSolve.Options adjoint(Boolean adjoint)
adjoint
- Boolean indicating whether to solve with `matrix` or its (block-wise)
adjoint.
public Output<T> asOutput()
Operand
Inputs to TensorFlow operations are outputs of another TensorFlow operation. This method is used to obtain a symbolic handle that represents the computation of the input.
asOutput
in interface Operand<T>
OperationBuilder.addInput(Output)
Copyright © 2022. All rights reserved.