Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una 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.
Dataset propias que integren transformaciones encadenadas, aplicando los principios de la API orientada a objetos de PyTorch para construir componentes reutilizables.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.
torchvision 0.17 o superior.matplotlib, pandas, scikit-learn (para métricas auxiliares).torchvision.models durante las prácticas de transfer learning.autograd, .backward(), .grad).__init__, __len__, __getitem__).Nota: estos conocimientos se adquieren en el curso PPT01 (PyTorch — Iniciación), que es prerrequisito obligatorio de este módulo.