Operaciones Matemáticas con Tensores
Operaciones elemento a elemento
Las operaciones elemento a elemento se aplican a cada elemento del tensor de forma individual. Estas operaciones, como la suma, resta y división, funcionan de manera similar a como lo hacen en NumPy:
123456789101112131415import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) # Element-wise addition addition_result = a + b print(f"Addition: {addition_result}") # Element-wise subtraction subtraction_result = a - b print(f"Subtraction: {subtraction_result}") # Element-wise multiplication multiplication_result = a * b print(f"Multiplication: {multiplication_result}") # Element-wise division division_result = a / b print(f"Division: {division_result}")
Operaciones matriciales
PyTorch también admite la multiplicación de matrices y el producto punto, que se realizan utilizando la función torch.matmul():
123456import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) # Matrix multiplication z = torch.matmul(x, y) print(f"Matrix multiplication: {z}")
También se puede utilizar el operador @ para la multiplicación de matrices:
12345import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
Operaciones de agregación
Las operaciones de agregación calculan estadísticas resumidas a partir de tensores, como suma, media, valor máximo y valor mínimo, que pueden obtenerse utilizando sus respectivos métodos.
12345678910import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]).float() # Sum of all elements print(f"Sum: {tensor.sum()}") # Mean of all elements print(f"Mean: {tensor.mean()}") # Maximum value print(f"Max: {tensor.max()}") # Minimum value print(f"Min: {tensor.min()}")
Se utilizó el método float() para convertir el tipo de dato del tensor a punto flotante porque el método mean() requiere un tipo de dato de punto flotante. Sin esta conversión, el tensor mantiene su tipo entero predeterminado, que no es compatible con mean().
Los métodos de agregación también tienen dos parámetros opcionales:
dim: especifica la dimensión (de manera similar aaxisen NumPy) a lo largo de la cual se aplica la operación. Por defecto, si no se proporcionadim, la operación se aplica a todos los elementos del tensor;keepdim: indicador booleano (Falsepor defecto). Si se establece enTrue, la dimensión reducida se mantiene como una dimensión de tamaño1en la salida, preservando el número original de dimensiones.
12345678import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) # Aggregation operations along specific dimensions print(f"Sum along rows (dim=1): {tensor.sum(dim=1)}") print(f"Sum along columns (dim=0): {tensor.sum(dim=0)}") # Aggregation with keepdim=True print(f"Sum along rows with keepdim (dim=1): {tensor.sum(dim=1, keepdim=True)}") print(f"Sum along columns with keepdim (dim=0): {tensor.sum(dim=0, keepdim=True)}")
Broadcasting
Broadcasting permite operaciones entre tensores de diferentes formas al expandir automáticamente las dimensiones. Si necesitas un repaso sobre broadcasting, puedes encontrar más detalles aquí.
123456import torch a = torch.tensor([[1, 2, 3]]) # Shape (1, 3) b = torch.tensor([[4], [5]]) # Shape (2, 1) # Broadcasting addition c = a + b print(f"Broadcasted addition: {c}")
Funciones matemáticas útiles
PyTorch también proporciona varias funciones matemáticas como exponenciales, logaritmos y funciones trigonométricas.
1234567tensor = torch.tensor([1.0, 2.0, 3.0]) # Exponentiation print(f"Exponent: {tensor.exp()}") # Logarithm print(f"Logarithm: {tensor.log()}") # Sine print(f"Sine: {tensor.sin()}")
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Genial!
Completion tasa mejorada a 5
Operaciones Matemáticas con Tensores
Desliza para mostrar el menú
Operaciones elemento a elemento
Las operaciones elemento a elemento se aplican a cada elemento del tensor de forma individual. Estas operaciones, como la suma, resta y división, funcionan de manera similar a como lo hacen en NumPy:
123456789101112131415import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) # Element-wise addition addition_result = a + b print(f"Addition: {addition_result}") # Element-wise subtraction subtraction_result = a - b print(f"Subtraction: {subtraction_result}") # Element-wise multiplication multiplication_result = a * b print(f"Multiplication: {multiplication_result}") # Element-wise division division_result = a / b print(f"Division: {division_result}")
Operaciones matriciales
PyTorch también admite la multiplicación de matrices y el producto punto, que se realizan utilizando la función torch.matmul():
123456import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) # Matrix multiplication z = torch.matmul(x, y) print(f"Matrix multiplication: {z}")
También se puede utilizar el operador @ para la multiplicación de matrices:
12345import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
Operaciones de agregación
Las operaciones de agregación calculan estadísticas resumidas a partir de tensores, como suma, media, valor máximo y valor mínimo, que pueden obtenerse utilizando sus respectivos métodos.
12345678910import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]).float() # Sum of all elements print(f"Sum: {tensor.sum()}") # Mean of all elements print(f"Mean: {tensor.mean()}") # Maximum value print(f"Max: {tensor.max()}") # Minimum value print(f"Min: {tensor.min()}")
Se utilizó el método float() para convertir el tipo de dato del tensor a punto flotante porque el método mean() requiere un tipo de dato de punto flotante. Sin esta conversión, el tensor mantiene su tipo entero predeterminado, que no es compatible con mean().
Los métodos de agregación también tienen dos parámetros opcionales:
dim: especifica la dimensión (de manera similar aaxisen NumPy) a lo largo de la cual se aplica la operación. Por defecto, si no se proporcionadim, la operación se aplica a todos los elementos del tensor;keepdim: indicador booleano (Falsepor defecto). Si se establece enTrue, la dimensión reducida se mantiene como una dimensión de tamaño1en la salida, preservando el número original de dimensiones.
12345678import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) # Aggregation operations along specific dimensions print(f"Sum along rows (dim=1): {tensor.sum(dim=1)}") print(f"Sum along columns (dim=0): {tensor.sum(dim=0)}") # Aggregation with keepdim=True print(f"Sum along rows with keepdim (dim=1): {tensor.sum(dim=1, keepdim=True)}") print(f"Sum along columns with keepdim (dim=0): {tensor.sum(dim=0, keepdim=True)}")
Broadcasting
Broadcasting permite operaciones entre tensores de diferentes formas al expandir automáticamente las dimensiones. Si necesitas un repaso sobre broadcasting, puedes encontrar más detalles aquí.
123456import torch a = torch.tensor([[1, 2, 3]]) # Shape (1, 3) b = torch.tensor([[4], [5]]) # Shape (2, 1) # Broadcasting addition c = a + b print(f"Broadcasted addition: {c}")
Funciones matemáticas útiles
PyTorch también proporciona varias funciones matemáticas como exponenciales, logaritmos y funciones trigonométricas.
1234567tensor = torch.tensor([1.0, 2.0, 3.0]) # Exponentiation print(f"Exponent: {tensor.exp()}") # Logarithm print(f"Logarithm: {tensor.log()}") # Sine print(f"Sine: {tensor.sin()}")
¡Gracias por tus comentarios!