Resuelve sistemas de ecuaciones lineales con matrices triangulares superiores o inferiores mediante sustitución inversa.
`matrix` es un tensor de forma` [..., M, M] `cuyas 2 dimensiones más internas forman matrices cuadradas. Si "lower" es "True", entonces se supone que la parte triangular estrictamente superior de cada matriz más interna es cero y no se accede a ella. Si `lower` es False, 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` matrix [...,:,:] * output [...,:,:] = rhs [...,:, :] `. Si `adjoint` es` False` entonces estrictamente entonces las matrices más internas en `output` satisfacen las ecuaciones matriciales` adjoint (matrix [..., i, k]) * output [..., k, j] = rhs [ ..., yo, j] `.
Tenga en cuenta que las formas de lote para las entradas solo deben 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 | TriangularSolve.Options | Los atributos opcionales para TriangularSolve |
Constantes
Cuerda | OP_NAME | El nombre de esta operación, como lo conoce el motor central de TensorFlow |
Métodos públicos
estáticas TriangularSolve.Options | adjunto (adjunto Boolean) |
Salida <T> | asOutput () Devuelve el identificador simbólico del tensor. |
estática <T se extiende Ttype > TriangularSolve <T> | crear ( Alcance alcance, operando <T> matriz, operando <T> lado derecho, Opciones ... Opciones) Método de fábrica para crear una clase que envuelva una nueva operación TriangularSolve. |
estáticas TriangularSolve.Options | bajar (Boolean inferior) |
Salida <T> | salida () La forma es "[..., M, K]". |
Métodos heredados
Constantes
OP_NAME pública final static String
El nombre de esta operación, como lo conoce el motor central de TensorFlow
Métodos públicos
estáticas pública TriangularSolve.Options adjunto (adjunto booleana)
Parámetros
adjunto | Booleano que indica si resolver con `matrix` o su adjunto (en bloques). |
---|
pública de salida <T> asOutput ()
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.
public static TriangularSolve <T> crear ( Alcance alcance, operando <T> matriz, operando <T> lado derecho, Opciones ... Opciones)
Método de fábrica para crear una clase que envuelva una nueva operación TriangularSolve.
Parámetros
alcance | alcance actual |
---|---|
matriz | La forma es "[..., M, M]". |
rhs | La forma es "[..., M, K]". |
opciones | lleva valores de atributos opcionales |
Devoluciones
- una nueva instancia de TriangularSolve
estáticas pública TriangularSolve.Options inferior (booleano bajar)
Parámetros
más bajo | Booleano que indica si las matrices más internas en "matrix" son triangulares inferiores o superiores. |
---|