Risolve sistemi di equazioni lineari con matrici triangolari superiori o inferiori mediante sostituzione all'indietro.
`matrice` è un tensore di forma `[..., M, M]` le cui 2 dimensioni più interne formano matrici quadrate. Se "inferiore" è "Vero", si presuppone che la parte triangolare strettamente superiore di ciascuna matrice più interna sia zero e non sia possibile accedervi. Se "inferiore" è Falso, si presuppone che la parte triangolare strettamente inferiore di ciascuna matrice più interna sia zero e non sia accessibile. `rhs` è un tensore di forma `[..., M, N]`.
L'output è un tensore di forma `[..., M, N]`. Se `adjoint` è `True` allora le matrici più interne in `output` soddisfano le equazioni di matrice `matrix[..., :, :] * output[..., :, :] = rhs[..., :, :]`. Se `adjoint` è `False` allora le matrici più interne in `output` soddisfano rigorosamente le equazioni di matrice `adjoint(matrix[..., i, k]) * output[..., k, j] = rhs[ ..., i, j]`.
Tieni presente che le forme batch per gli input devono solo essere trasmesse.
Esempio:
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)>
Classi nidificate
classe | TriangularSolve.Options | Attributi facoltativi per TriangularSolve |
Costanti
Corda | OP_NAME | Il nome di questa operazione, come noto al motore principale di TensorFlow |
Metodi pubblici
TriangularSolve.Options statico | aggiunto (aggiunto booleano) |
Uscita <T> | comeuscita () Restituisce l'handle simbolico del tensore. |
statico <T estende TType > TriangularSolve <T> | create ( ambito ambito , matrice operando <T>, operando <T> destra, opzioni... opzioni) Metodo factory per creare una classe che racchiude una nuova operazione TriangularSolve. |
TriangularSolve.Options statico | inferiore (Booleano inferiore) |
Uscita <T> | produzione () La forma è "[..., M, K]". |
Metodi ereditati
Costanti
Stringa finale statica pubblica OP_NAME
Il nome di questa operazione, come noto al motore principale di TensorFlow
Metodi pubblici
public static TriangularSolve.Options aggiunto (aggiunto booleano)
Parametri
aggiunto | Booleano che indica se risolvere con "matrice" o il suo aggiunto (a blocchi). |
---|
Uscita pubblica <T> asOutput ()
Restituisce l'handle simbolico del tensore.
Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.
public static TriangularSolve <T> create ( ambito ambito , matrice operando <T>, operando <T> destra, opzioni... opzioni)
Metodo factory per creare una classe che racchiude una nuova operazione TriangularSolve.
Parametri
portata | ambito attuale |
---|---|
matrice | La forma è "[..., M, M]". |
ds | La forma è "[..., M, K]". |
opzioni | trasporta valori di attributi opzionali |
Ritorni
- una nuova istanza di TriangularSolve
public static TriangularSolve.Options lower (Booleano inferiore)
Parametri
inferiore | Booleano che indica se le matrici più interne in "matrix" sono triangolari inferiori o superiori. |
---|