Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

PyTorch desde cero, Unidad 3 — Tensores en PyTorch, 3.2 — Operaciones tensoriales ·

Operaciones matemáticas

Operaciones matemáticas en PyTorch

Introducción

En la construcción de modelos de aprendizaje profundo, los tensores son la moneda corriente. Las operaciones matemáticas sobre estos tensores forman la base de muchas funciones y algoritmos utilizados para entrenar modelos. PyTorch proporciona una amplia gama de operaciones matemáticas que permiten manipular estos tensores con facilidad, eficiencia y precisión.

En esta unidad, profundizaremos en las operaciones matemáticas básicas disponibles en PyTorch, desde sumas y restas hasta funciones trigonométricas y logarítmicas. Aprenderás a utilizar estas herramientas para realizar cálculos complejos sobre tensores de manera eficiente.

Explicación principal con ejemplos

PyTorch ofrece una amplia gama de operaciones matemáticas que puedes aplicar a tus tensores. Estas operaciones incluyen sumas, restas, multiplicaciones y divisiones, así como funciones trigonométricas, exponenciales, logarítmicas y más.

Operaciones básicas

import torch

# Creación de dos tensores
a = torch.tensor([1.0, 2.0, 3.0])
b = torch.tensor([4.0, 5.0, 6.0])

# Suma y resta
sum_result = a + b
diff_result = a - b

print("Suma:", sum_result)
print("Resta:", diff_result)

# Multiplicación y división
prod_result = a * b
div_result = a / b

print("Multiplicación:", prod_result)
print("División:", div_result)

Funciones matemáticas

PyTorch incluye una variedad de funciones matemáticas que se pueden aplicar a tensores. Algunas de estas funciones son:

  • torch.sin(), torch.cos(): funciones trigonométricas.
  • torch.exp(), torch.log(): exponencial y logarítmica.
  • torch.sqrt(), torch.pow(): raíz cuadrada y potenciación.
import math

# Creación de un tensor con valores numéricos
x = torch.tensor([1.0, 4.0, 9.0])

# Aplicación de funciones matemáticas
sin_result = torch.sin(x)
exp_result = torch.exp(x)

print("Sinusoidales:", sin_result)
print("Exponenciales:", exp_result)

Funciones booleanas y comparativas

PyTorch también proporciona operaciones que devuelven tensores de valores booleanos, lo cual es útil para la implementación de condiciones en tus modelos.

# Creación de dos tensores
x = torch.tensor([1.0, 2.0, 3.0])
y = torch.tensor([4.0, 5.0, 6.0])

# Comparaciones (mayor que, igual a)
gt_result = x > y
eq_result = x == y

print("Mayor que:", gt_result)
print("Igual a:", eq_result)

Errores típicos / trampas

Trampa 1: Operar con tensores de dimensiones incompatibles

Una de las trampas más comunes es intentar realizar operaciones entre tensores que no tienen la misma forma. Por ejemplo, sumar un tensor de una dimensión a otro de dos.

# Tensores con formas incompatibles
a = torch.tensor([1.0, 2.0])
b = torch.tensor([3.0, 4.0, 5.0])

try:
    result = a + b
except RuntimeError as e:
    print(e)

Trampa 2: Olvidar el permute en tensores multidimensionales

Cuando trabajas con tensores multidimensionales, especialmente cuando estás preparándolos para la entrada de un modelo, es común olvidarse de permutar las dimensiones del tensor.

# Tensor con forma (3, 2)
x = torch.randn(3, 2)

# Intento incorrecto de cambiar el orden de las dimensiones
y = x[0][1]  # Esto fallará

print("Resultado esperado:", x.permute(1, 0)[0][1])

Trampa 3: Uso inapropiado de torch.tensor() con tipos incorrectos

PyTorch requiere que los tensores se creen con tipos específicos. Si no especificas correctamente el tipo de tensor o intentas mezclar tipos de datos, podrías enfrentarte a errores.

# Creación de un tensor con tipo incorrecto
try:
    x = torch.tensor([1, 2, 3], dtype=torch.float)
except RuntimeError as e:
    print(e)

# Creación correcta del tensor
x = torch.tensor([1.0, 2.0, 3.0])
print("Tipo correcto:", x.dtype)

Checklist accionable

  • Verifica siempre las dimensiones de tus tensores antes de realizar operaciones.
  • Usa torch.permute() para cambiar el orden de las dimensiones en tensores multidimensionales.
  • Especifica correctamente el tipo de dato al crear tensores.

Cierre con "Siguientes pasos"

Ahora que has aprendido sobre las operaciones matemáticas en PyTorch, aquí hay algunos pasos para seguir:

  1. Práctica constante: Trata de realizar operaciones matemáticas con diferentes conjuntos de datos y tensores.
  2. Documentación adicional: Explora más la documentación oficial de PyTorch para aprender sobre otras funciones y características avanzadas.
  3. Proyectos prácticos: Aplica lo que has aprendido en proyectos de aprendizaje automático, como ajustar hiperparámetros o implementar algoritmos simples.

Sigues tu camino hacia una comprensión más profunda del uso de PyTorch para la creación y entrenamiento de modelos de deep learning. ¡Felices códigos!

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).