Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

PyTorch — Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • PyTorch

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a profesionales con experiencia previa en PyTorch que ya dominan la manipulación de tensores y el grafo computacional básico, este curso profundiza en el diseño y entrenamiento de redes neuronales de uso real en contextos de ciencia de datos. A lo largo de ocho horas, el participante aprenderá a construir arquitecturas personalizadas subclasificando nn.Module, a gestionar datos a escala mediante clases Dataset y DataLoader propias, y a seleccionar y justificar funciones de pérdida, optimizadores y schedulers en función de la tarea y las curvas de entrenamiento. El curso culmina con la aplicación de transfer learning sobre modelos preentrenados de torchvision y la incorporación de mecanismos de monitorización —early stopping y guardado del mejor modelo— dentro del bucle de entrenamiento, de modo que el participante sea capaz de entregar un pipeline supervisado completo, depurado y listo para producción.

  1. Diseñar arquitecturas de red neuronal personalizadas y clases Dataset propias que integren transformaciones encadenadas, aplicando los principios de la API orientada a objetos de PyTorch para construir componentes reutilizables.
  2. Comparar y justificar la elección de funciones de pérdida, optimizadores y learning rate schedulers en función de la tarea, la distribución del target y el comportamiento observado en las curvas de pérdida y validación.
  3. Integrar y depurar pipelines de entrenamiento completos —incluyendo DataLoader, bucle train/validation, callbacks de monitorización y transfer learning— identificando y corrigiendo fallos comunes de forma de tensor, acumulación de gradientes y gestión de dispositivo.

Bloque 1 — Arquitecturas personalizadas con nn.Module Se presenta la estructura interna de nn.Module como base para construir redes neuronales a medida: definición del grafo en __init__, implementación del paso hacia adelante en forward y composición de al menos dos tipos de capas distintos. A continuación se introduce el diseño de clases Dataset personalizadas que implementan __len__ y __getitem__, incluyendo la aplicación de pipelines de transformación encadenados con torchvision.transforms y su integración con DataLoader para alimentar el entrenamiento de forma eficiente.

Bloque 2 — Funciones de pérdida y criterios de selección Se analizan en profundidad las principales funciones de pérdida disponibles en PyTorch (CrossEntropyLoss, BCEWithLogitsLoss, MSELoss y HuberLoss), contrastando sus supuestos matemáticos, su comportamiento ante distribuciones desequilibradas y los escenarios de clasificación multiclase, binaria y regresión en los que cada una resulta más adecuada. El participante justifica de forma razonada la elección según las características del target.

Bloque 3 — Optimizadores, schedulers y diagnóstico de curvas Se comparan las estrategias de optimización más habituales —SGD con momentum, Adam y AdamW— y se vincula su comportamiento a los patrones observados en las curvas de pérdida de entrenamiento y validación. Se incorporan learning rate schedulers (paso fijo, coseno, reducción en plateau) y se discute cómo combinar optimizador y scheduler para acelerar la convergencia y evitar el sobreajuste.

Bloque 4 — Pipeline completo: depuración, callbacks y transfer learning Se integra todo lo anterior en un pipeline de entrenamiento end-to-end que incluye el bucle train/validation, guardado del mejor modelo con torch.save y early stopping manual. Se dedica especial atención a la depuración sistemática de errores frecuentes: incompatibilidades de forma de tensor, acumulación incorrecta de gradientes y mezcla de dispositivos CPU/GPU. El bloque cierra con la adaptación de modelos preentrenados de torchvision.models a tareas de clasificación distintas mediante congelación del encoder y sustitución del clasificador final.

  • Python 3.10 o superior.
  • PyTorch 2.2 o superior con soporte CUDA opcional (se facilita entorno en CPU para quien no disponga de GPU).
  • torchvision 0.17 o superior.
  • Jupyter Lab o VS Code con extensión Jupyter.
  • Librerías adicionales: matplotlib, pandas, scikit-learn (para métricas auxiliares).
  • Acceso a internet para la descarga de pesos preentrenados de torchvision.models durante las prácticas de transfer learning.
  • Manejo fluido de tensores en PyTorch: creación, indexación, operaciones elementales y broadcasting.
  • Comprensión del grafo computacional y del mecanismo de autodiferenciación (autograd, .backward(), .grad).
  • Experiencia básica con un ciclo de entrenamiento simple (forward pass, cálculo de pérdida, backward, paso del optimizador).
  • Programación orientada a objetos en Python: clases, herencia y métodos especiales (__init__, __len__, __getitem__).
  • Familiaridad con NumPy y con el ecosistema científico de Python (pandas, matplotlib).

Nota: estos conocimientos se adquieren en el curso PPT01 (PyTorch — Iniciación), que es prerrequisito obligatorio de este módulo.