single
Álgebra Lineal
Desliza para mostrar el menú
Operaciones de Álgebra Lineal
TensorFlow ofrece un conjunto de funciones dedicadas a las operaciones de álgebra lineal, facilitando las operaciones con matrices.
Multiplicación de Matrices
A continuación, un recordatorio rápido de cómo funciona la multiplicación de matrices.
Existen dos enfoques equivalentes para la multiplicación de matrices:
- La función
tf.matmul(); - Usar el operador
@.
1234567891011121314import tensorflow as tf # Create two matrices matrix1 = tf.constant([[1, 2], [3, 4], [2, 1]]) matrix2 = tf.constant([[2, 0, 2, 5], [2, 2, 1, 3]]) # Multiply the matrices product1 = tf.matmul(matrix1, matrix2) product2 = matrix1 @ matrix2 # Display tensors print(product1) print('-' * 50) print(product2)
Multiplicar matrices de tamaño 3x2 y 2x4 dará como resultado una matriz de 3x4.
Inversión de matrices
Puedes obtener la inversa de una matriz utilizando la función tf.linalg.inv(). Además, vamos a verificar una propiedad fundamental de la matriz inversa.
123456789101112131415import tensorflow as tf # Create 2x2 matrix matrix = tf.constant([[1., 2.], [3., 4.]]) # Compute the inverse of a matrix inverse_mat = tf.linalg.inv(matrix) # Check the result identity = matrix @ inverse_mat # Display tensors print(inverse_mat) print('-' * 50) print(identity)
Multiplicar una matriz por su inversa debe dar como resultado una matriz identidad, que tiene unos en su diagonal principal y ceros en el resto de las posiciones. Además, el módulo tf.linalg ofrece una amplia gama de funciones de álgebra lineal. Para más detalles o para operaciones avanzadas, puedes consultar su documentación oficial.
Transposición
Se puede obtener una matriz transpuesta utilizando la función tf.transpose().
123456789101112import tensorflow as tf # Create a matrix 3x2 matrix = tf.constant([[1, 2], [3, 4], [2, 1]]) # Get the transpose of a matrix transposed = tf.transpose(matrix) # Display tensors print(matrix) print('-' * 40) print(transposed)
Producto punto
Se puede obtener un producto punto utilizando la función tf.tensordot(). Al configurar el argumento axes, se puede elegir a lo largo de qué ejes calcular el producto punto. Por ejemplo, para dos vectores, al establecer axes=1 se obtiene el producto punto clásico entre vectores. Pero al establecer axes=0, se obtiene una matriz transmitida a lo largo del eje 0:
1234567891011121314import tensorflow as tf # Create two vectors matrix1 = tf.constant([1, 2, 3, 4]) matrix2 = tf.constant([2, 0, 2, 5]) # Compute the dot product of two tensors dot_product_axes1 = tf.tensordot(matrix1, matrix2, axes=1) dot_product_axes0 = tf.tensordot(matrix1, matrix2, axes=0) # Display tensors print(dot_product_axes1) print('-' * 40) print(dot_product_axes0)
Si se toman dos matrices con dimensiones apropiadas (NxM @ MxK, donde NxM representa las dimensiones de la primera matriz y MxK la segunda), y se calcula el producto punto a lo largo de axes=1, esto realiza esencialmente una multiplicación de matrices.
Desliza para comenzar a programar
Contexto
Un sistema de ecuaciones lineales puede representarse en forma matricial utilizando la ecuación:
AX = B
Donde:
Aes una matriz de coeficientes;Xes una matriz columna de variables;Bes una matriz columna que representa los valores en el lado derecho de las ecuaciones.
La solución de este sistema puede encontrarse usando la fórmula:
X = A^-1 B
Donde A^-1 es la inversa de la matriz A.
Objetivo
Dado un sistema de ecuaciones lineales, utilizar TensorFlow para resolverlo. Se proporciona el siguiente sistema de ecuaciones lineales:
2x + 3y - z = 1.4x + y + 2z = 2.-x + 2y + 3z = 3.
- Representar el sistema de ecuaciones en forma matricial (separándolo en las matrices
AyB). - Utilizar TensorFlow para encontrar la inversa de la matriz
A. - Multiplicar la inversa de la matriz
Apor la matrizBpara encontrar la matriz soluciónX, que contiene los valores dex,yyz.
Nota
El slicing en TensorFlow funciona de manera similar a NumPy. Por lo tanto,
X[:, 0]recuperará todos los elementos de la columna en el índice0. Abordaremos el tema del slicing más adelante en el curso.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla