Resolve sistemas de equações lineares com matrizes triangulares superiores ou inferiores por substituição reversa.
`matriz` é um tensor de forma` [..., M, M] `cujas 2 dimensões mais internas formam matrizes quadradas. Se `inferior` for` verdadeiro`, a parte triangular estritamente superior de cada matriz mais interna é considerada zero e não acessada. Se `inferior` for False, a parte triangular estritamente inferior de cada matriz mais interna será considerada zero e não será acessada. `rhs` é um tensor de forma` [..., M, N] `.
A saída é um tensor de forma `[..., M, N]`. Se `adjoint` for` True`, então as matrizes mais internas em `output` satisfazem as equações matriciais` matrix [...,:,:] * output [...,:,:] = rhs [...,:, :] `. Se `adjoint` for` False` então estritamente então as matrizes mais internas em `output` satisfazem as equações de matriz` adjoint (matrix [..., i, k]) * output [..., k, j] = rhs [ ..., i, j] `.
Observe, as formas de lote para as entradas só precisam ser transmitidas.
Exemplo:
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: 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: shape=(4, 1), dtype=float32, numpy=
# array([[4. ],
# [2. ],
# [4. ],
# [1.9999999]], dtype=float32)>
Classes aninhadas
classe | TriangularSolve.Options | Atributos opcionais para TriangularSolve |
Constantes
Fragmento | OP_NAME | O nome desta operação, conforme conhecido pelo motor principal TensorFlow |
Métodos Públicos
estáticos TriangularSolve.Options | adjunta (adjunta booleana) |
Output <T> | asOutput () Retorna o identificador simbólico do tensor. |
estática <T estende TType > TriangularSolve <T> | criar ( Scope escopo, Operando <T> matriz, operando <T> rhs, Options ... Opções) Método de fábrica para criar uma classe envolvendo uma nova operação TriangularSolve. |
estáticos TriangularSolve.Options | abaixar (booleano inferior) |
Output <T> | saída () A forma é `[..., M, K]`. |
Métodos herdados
Constantes
nome_op final String public static
O nome desta operação, conforme conhecido pelo motor principal TensorFlow
Métodos Públicos
public static TriangularSolve.Options adjunta (adjunta Boolean)
Parâmetros
anexo | Booleano que indica se deve ser resolvido com `matriz` ou seu adjunto (em bloco). |
---|
pública Output <T> asOutput ()
Retorna o identificador simbólico do tensor.
As entradas para as operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.
public static TriangularSolve <T> create ( Scope escopo, Operando <T> matriz, operando <T> rhs, Options ... Opções)
Método de fábrica para criar uma classe envolvendo uma nova operação TriangularSolve.
Parâmetros
alcance | escopo atual |
---|---|
matriz | A forma é `[..., M, M]`. |
rhs | A forma é `[..., M, K]`. |
opções | carrega valores de atributos opcionais |
Devoluções
- uma nova instância de TriangularSolve
public static TriangularSolve.Options baixar (Boolean inferior)
Parâmetros
diminuir | Booleano que indica se as matrizes mais internas em `matriz` são triangulares inferior ou superior. |
---|