Resuelve sistemas de ecuaciones lineales con matrices triangulares superiores o inferiores mediante sustitución inversa.
`matriz` es un tensor de forma `[..., M, M]` cuyas 2 dimensiones más internas forman matrices cuadradas. Si "inferior" es "Verdadero", entonces se supone que la parte triangular estrictamente superior de cada matriz más interna es cero y no se accede a ella. Si "inferior" es Falso, entonces se supone que la parte triangular estrictamente inferior de cada matriz más interna es cero y no se accede a ella. `rhs` es un tensor de forma `[..., M, N]`.
La salida es un tensor de forma `[..., M, N]`. Si `adjoint` es `True`, entonces las matrices más internas en `output` satisfacen las ecuaciones matriciales `matriz[..., :, :] * salida[..., :, :] = rhs[..., :, :]`. Si `adjoint` es `Falso`, entonces estrictamente las matrices más internas en `output` satisfacen las ecuaciones matriciales `adjoint(matriz[..., i, k]) * salida[..., k, j] = rhs[ ..., yo, j]`.
Tenga en cuenta que las formas por lotes para las entradas solo necesitan transmitirse.
Ejemplo:
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)>
Clases anidadas
clase | Opciones de solución triangular | Atributos opcionales para TriangularSolve |
Constantes
Cadena | OP_NOMBRE | El nombre de esta operación, como lo conoce el motor central de TensorFlow. |
Métodos públicos
Opciones de resolución triangular estáticas | adjunto (adjunto booleano) |
Salida <T> | como salida () Devuelve el identificador simbólico del tensor. |
estático <T extiende TType > TriangularSolve <T> | crear (alcance alcance , matriz de operando <T>, operando <T> rhs, opciones... opciones) Método de fábrica para crear una clase que envuelve una nueva operación TriangularSolve. |
Opciones de resolución triangular estáticas | inferior (booleano inferior) |
Salida <T> | producción () La forma es `[..., M, K]`. |
Métodos heredados
Constantes
Cadena final estática pública OP_NAME
El nombre de esta operación, como lo conoce el motor central de TensorFlow.
Métodos públicos
Adjunto público estático TriangularSolve.Options (adjunto booleano)
Parámetros
adjunto | Booleano que indica si se debe resolver con `matriz` o su adjunto (por bloques). |
---|
Salida pública <T> como Salida ()
Devuelve el identificador simbólico del tensor.
Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.
pública estática TriangularSolve <T> crear (alcance alcance , matriz de operando <T>, operando <T> rhs, opciones... opciones)
Método de fábrica para crear una clase que envuelve una nueva operación TriangularSolve.
Parámetros
alcance | alcance actual |
---|---|
matriz | La forma es `[..., M, M]`. |
derecho | La forma es `[..., M, K]`. |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de TriangularSolve
pública estática TriangularSolve.Options inferior (booleano inferior)
Parámetros
más bajo | Booleano que indica si las matrices más internas de "matriz" son triangulares inferiores o superiores. |
---|