El módulo de álgebra lineal torch.linalg de PyTorch proporciona la función torch.linalg.det() para calcular el determinante de una array cuadrada (real o compleja). Esta función también calcula el determinante de cada array cuadrada en un lote.
Sintaxis:
torch.linalg.det(entrada) –> Tensor
la entrada es una array (n, n) o un lote de arrays de tamaño (b, n, n) donde b es la dimensión del lote (número de arrays en un lote). Esta entrada debe ser un tensor. Esta función devuelve un tensor del/de los valor/es determinante/s.
Nota: esta función es compatible con los tipos de d flotante, doble, cfloat y cdouble .
Primero veamos cómo crear una array compleja en PyTorch y luego calculemos el determinante de la array. Para crear una array compleja en PyTorch, usamos tensores complejos 2D . También podemos crear un lote de arrays complejas. Los dtypes complejos admitidos son torch.cfloat y torch.cdouble.
A continuación se muestran algunos ejemplos para crear una array compleja (tensor complejo bidimensional) y encontrar su determinante.
Ejemplo 1:
Cree un tensor complejo 2D de tamaño 2 × 2 generando números aleatorios y calcule el determinante.
Python3
# import library import torch # create 2x2 complex matrix using # random numbers mat = torch.randn(2,2, dtype = torch.cfloat) # display the matrix print("Complex Matrix: \n", mat) # Compute the determinant of Matrix # using torch.linalg.det() det = torch.linalg.det(mat) print("Determinant: \n", det)
Producción:
Ejemplo 2:
Otra forma de crear una array compleja en PyTorch es usar torch.complex(real, imag). Esto crea un tensor complejo con partes reales e imaginarias como real e imag. Tanto real como imag deben ser flotantes o dobles e imag debe ser del mismo tipo que real. En el siguiente programa, creamos un tensor complejo 2D de tamaño 2×2 y calculamos su determinante.
Python3
# import library import torch # create real parts the complex numbers real = torch.tensor([[1, 2],[5,6]], dtype=torch.float32) # create imaginary parts of the complex numbers imag = torch.tensor([[3, 4],[8,9]], dtype=torch.float32) # create complex tensor (matrix) z = torch.complex(real, imag) print("Complex Matrix: \n", z) # Compute the determinant of Matrix # using torch.linalg.det() det = torch.linalg.det(z) print("Determinant: \n", det)
Producción:
Ejemplo 3:
También se pueden crear tensores complejos a partir de tensores reales ya existentes . Los tensores de forma reales (…, 2) se pueden convertir fácilmente en tensores complejos usando torch.view_as_complex() y su determinante se puede calcular usando el método torch.linalg.det() .
Python3
# import library import torch # create a real tensor mat = torch.randn(3,3,2) # display the real tensor print("Real Tensor: \n",mat) # convert the above real tensor # into complex tensor mat = torch.view_as_complex(mat) # display the complex tensor (matrix) print("Complex Tensor (Matrix): \n", mat) # Compute the determinant of Matrix # using torch.linalg.det() det = torch.linalg.det(mat) print("Determinant: \n", det)
Producción:
Ejemplo 4:
Aquí creamos un lote de 3 tensores complejos de tamaño 2×2 y calculamos su determinante.
Python3
# import library import torch # create matrix mat = torch.randn(3,2,2, dtype = torch.cfloat) # display matrix print("Batch of Complex Matrices: \n", mat) # Compute the determinant det = torch.linalg.det(mat) print("Determinant: \n", det)
Producción:
Ejemplo 5:
Aquí hay otro programa donde creamos un lote de 3 tensores complejos de tamaño 4×4 y calculamos el determinante.
Python3
# import library import torch # create complex matrix mat = torch.randn(3,4,4, dtype = torch.cfloat) # display matrix print("Batch of Complex Matrices: \n", mat) # Compute the determinant det = torch.linalg.det(mat) print("Determinant: \n", det)
Producción:
Publicación traducida automáticamente
Artículo escrito por shahidedu7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA