PyTorch: tensores, autograd y el bucle de entrenamiento
Lo esencial
- 1Un tensor de PyTorch es un arreglo como los de NumPy que además puede vivir en la GPU y recordar las operaciones que lo produjeron. Un lote de imágenes tiene forma (N, canales, alto, ancho), y reshape, permute, flatten, unsqueeze, cat y stack cambian esa forma sin cambiar los números.
- 2Autograd es la clase Valor del tema 17 hecha a escala: requires_grad=True arma el grafo, .backward() llena los .grad, y los gradientes se acumulan hasta que se ponen en cero.
- 3Un modelo es una clase de nn.Module con sus capas en __init__ y el camino de los datos en forward. nn.CrossEntropyLoss recibe logits y aplica el softmax por dentro.
- 4Dataset da ejemplos sueltos y DataLoader los agrupa en lotes mezclados. El bucle de entrenamiento es siempre zero_grad, adelante, pérdida, backward y step; para medir, eval() y no_grad().
- 5Las funciones entrenar() y evaluar() empaquetan ese bucle y se reutilizan en el resto de la ruta. Un MLP de unos cien mil parámetros acierta el 86 % de las prendas de prueba de FashionMNIST, y sus errores se concentran en camisas, poleras, chompas y abrigos.
- 6El mismo código corre en CPU o GPU moviendo modelo y datos con .to(device); las semillas fijas lo hacen reproducible, y state_dict guarda y carga el modelo entrenado.
En la teoría
- La pregunta
- Actividad: formas de tensores
- Tensores: arreglos de NumPy con superpoderes
- Cambiar la forma
- Autograd: tu motor del tema 17, ya hecho
- Las prendas: FashionMNIST
- Datos listos para entrenar: Dataset y DataLoader
- El modelo: una clase de nn.Module
- El bucle de entrenamiento, a mano
- La función entrenar(): el bucle que usarás en toda la ruta
- La prueba final: matriz de confusión
- Guardar y cargar un modelo
- CPU o GPU
- Lo que aprendiste y lo que sigue
¿Terminaste este tema?
Márcalo y en la ruta verás cuánto llevas. Se guarda solo en este navegador.