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 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 los valores de suma, media, máximo y mínimo, que pueden calcularse 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()}")
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 necesita un repaso sobre broadcasting, puede 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
Can you explain more about how broadcasting works in PyTorch?
What are some other common aggregation operations in PyTorch?
How do I choose between element-wise and matrix operations?
Awesome!
Completion rate improved to 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 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 los valores de suma, media, máximo y mínimo, que pueden calcularse 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()}")
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 necesita un repaso sobre broadcasting, puede 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!