Temario del curso
Introducción
- Introducción a TensorFlow y al aprendizaje profundo
- Casos de uso y aplicaciones de TensorFlow
- Ecosistema y herramientas de TensorFlow
- Flujos de trabajo de aprendizaje automático y aprendizaje profundo
- Resumen de los objetivos del curso y ejercicios prácticos
TensorFlow 2.x vs versiones anteriores: ¿Qué hay de nuevo?
- Principales diferencias entre TensorFlow 1.x y 2.x
- Ejecución inmediata (eager execution)
- APIs simplificadas y usabilidad mejorada
- Cambios en la construcción y entrenamiento de modelos
- Introducción a Keras como la API de alto nivel
- Consideraciones para la migración de aplicaciones existentes de TensorFlow
- Mejores prácticas de TensorFlow 2.x
Configuración de TensorFlow 2.x
- Instalación de TensorFlow
- Configuración de un entorno de Python
- Verificación de la instalación de TensorFlow
- Instalación y gestión de las dependencias necesarias
- Configuración de entornos CPU y GPU
- Uso de TensorFlow con cuadernos Jupyter
- Comandos y operaciones básicas de TensorFlow
- Resolución de problemas de instalación y configuración
Resumen de las características y arquitectura de TensorFlow 2.x
- Arquitectura de TensorFlow y componentes principales
- Tensores y operaciones con tensores
- Variables y constantes
- Gráficos computacionales y ejecución inmediata
- Diferenciación automática
- APIs y módulos de TensorFlow
- Integración de Keras
- Flujos de datos con
tf.data - Serialización de modelos y TensorFlow SavedModel
- Ecosistema de TensorFlow y flujo de trabajo de desarrollo
Cómo funcionan las redes neuronales
- Fundamentos de las redes neuronales artificiales
- Neuronas, capas y arquitecturas de red
- Funciones de activación
- Propagación hacia adelante
- Funciones de pérdida
- Retropropagación (backpropagation)
- Descenso de gradiente y optimización
- Tasas de aprendizaje y estrategias de optimización
- Sobreajuste (overfitting) y subajuste (underfitting)
- Técnicas de regularización
- Conjuntos de datos de entrenamiento, validación y prueba
Uso de TensorFlow 2.x para crear modelos de aprendizaje profundo
- Creación de tensores y variables
- Construcción de redes neuronales con Keras
- APIs de modelos secuenciales y funcionales
- Definición de modelos y capas personalizados
- Configuración de optimizadores
- Selección de funciones de pérdida adecuadas
- Entrenamiento de modelos con
fit() - Bucles de entrenamiento personalizados
- Callbacks y monitoreo del entrenamiento
- Gestión de puntos de control (checkpoints) del modelo
Análisis de datos
- Comprensión de los conjuntos de datos para el aprendizaje automático
- Exploración de datos estructurados y no estructurados
- Visualización de datos
- Identificación de patrones y anomalías
- Manejo de datos faltantes e inconsistentes
- División de los datos en conjuntos de entrenamiento, validación y prueba
- Selección de características relevantes
- Preparación de conjuntos de datos para modelos de TensorFlow
Preprocesamiento de datos
- Normalización y estandarización de datos
- Codificación de datos categóricos
- Manejo de valores faltantes
- Escala de características
- Preprocesamiento de imágenes
- Preprocesamiento de texto
- Ampliación de datos (data augmentation)
- Construcción de flujos de entrada eficientes
- Uso de
tf.data - Loteo (batching), barajado (shuffling), almacenamiento en caché (caching) y pre-precarga (prefetching)
- Preparación de datos para el entrenamiento del modelo
Construcción de un modelo
- Selección de una arquitectura de red neuronal adecuada
- Definición de entradas y salidas del modelo
- Creación de redes neuronales densas
- Elección de funciones de activación
- Configuración del modelo para el entrenamiento
- Selección de optimizadores y funciones de pérdida
- Entrenamiento y validación del modelo
- Monitoreo de métricas de entrenamiento
- Mejora del rendimiento del modelo
- Prevención del sobreajuste
- Implementación de regularización y dropout
Implementación de un clasificador de imágenes de vanguardia
- Fundamentos de la clasificación de imágenes
- Preparación de conjuntos de datos de imágenes
- Normalización y ampliación de imágenes
- Redes neuronales convolucionales
- Capas de convolución y muestreo (pooling)
- Diseño de una arquitectura de clasificación de imágenes
- Aprendizaje por transferencia
- Uso de modelos preentrenados
- Ajuste fino (fine-tuning) de redes preentrenadas
- Construcción de un clasificador de imágenes avanzado
- Evaluación del rendimiento de la clasificación
Entrenamiento del modelo
- Configuración de parámetros de entrenamiento
- Tamaño de lote (batch size) y épocas
- Selección del optimizador
- Programación de la tasa de aprendizaje
- Callbacks de entrenamiento
- Detención temprana (early stopping)
- Creación de puntos de control (checkpointing) de modelos
- Monitoreo del progreso del entrenamiento
- Detección de sobreajuste
- Mejora del rendimiento del entrenamiento
- Consideraciones para el entrenamiento distribuido
Entrenamiento en una GPU vs una TPU
- Arquitecturas CPU, GPU y TPU
- Ventajas de la aceleración de hardware
- Configuración de TensorFlow para entrenamiento en GPU
- Comprensión del entrenamiento basado en TPU
- Selección de hardware para diferentes cargas de trabajo
- Desplazamiento de cálculos entre dispositivos
- Gestión de memoria y recursos computacionales
- Comparación del rendimiento del entrenamiento
- Estrategias de entrenamiento distribuido y acelerado
Evaluación del modelo
- Selección de métricas de evaluación adecuadas
- Precisión, exactitud (precision), sensibilidad (recall) y puntuación F1
- Métricas de evaluación para regresión
- Matrices de confusión
- Estrategias de validación
- Evaluación de modelos de clasificación
- Evaluación de la generalización del modelo
- Identificación de debilidades del modelo
- Comparación de diferentes configuraciones de modelos
Realización de predicciones
- Uso de modelos entrenados para inferencia
- Preparación de nuevos datos de entrada
- Realización de predicciones por lotes e individuales
- Interpretación de las salidas del modelo
- Probabilidades de clasificación
- Predicciones de regresión
- Construcción de un flujo de trabajo de inferencia
- Manejo de datos no vistos
- Gestión de flujos de predicción
Evaluación de las predicciones
- Análisis de la calidad de las predicciones
- Comparación de las predicciones con los resultados esperados
- Identificación de falsos positivos y falsos negativos
- Análisis de errores
- Evaluación de la confianza del modelo
- Visualización de los resultados de las predicciones
- Detección de sesgos en los datos y las predicciones
- Mejora del rendimiento del modelo basada en el análisis de predicciones
Depuración del modelo
- Identificación de problemas comunes de entrenamiento
- Diagnóstico de predicciones incorrectas
- Depuración de flujos de trabajo de datos
- Investigación del comportamiento de la pérdida y las métricas
- Detección de gradientes explosivos y desaparecidos
- Diagnóstico de sobreajuste y subajuste
- Inspección de capas y salidas del modelo
- Uso de herramientas de depuración y perfilado de TensorFlow
- Mejora de la estabilidad y el rendimiento del modelo
Guardado de un modelo
- Guardado de modelos entrenados
- Formato SavedModel de TensorFlow
- Guardado y restauración de pesos del modelo
- Guardado de la arquitectura y configuración del modelo
- Carga de modelos para inferencia
- Versionado de modelos
- Exportación de modelos para despliegue
- Gestión de artefactos del modelo
- Preparación de modelos para entornos de producción
Despliegue de un modelo en la nube
- Introducción al despliegue de modelos basado en la nube
- Preparación de modelos de TensorFlow para producción
- Suministro de modelos a través de APIs
- Conceptos de servicio de modelos
- Contenerización de aplicaciones de TensorFlow
- Inferencia basada en la nube
- Escala de cargas de trabajo de servicio de modelos
- Monitoreo de modelos desplegados
- Gestión de versiones de modelos
- Consideraciones para el despliegue en producción
Despliegue de un modelo en un dispositivo móvil
- Desafíos del aprendizaje automático en móviles
- TensorFlow Lite
- Conversión de modelos de TensorFlow para despliegue en móviles
- Optimización del modelo y reducción de tamaño
- Cuantización
- Ejecución de inferencia en dispositivos móviles
- Gestión de recursos de dispositivos móviles
- Integración de modelos en aplicaciones móviles
- Pruebas de rendimiento de inferencia en móviles
Despliegue de un modelo en un sistema embebido (IoT)
- Aprendizaje automático en dispositivos embebidos
- TensorFlow Lite para aplicaciones embebidas
- Restricciones de recursos y optimización
- Reducción del tamaño del modelo y de los requisitos computacionales
- Inferencia en el borde (edge)
- Procesamiento de datos de sensores y en tiempo real
- Ejecución de predicciones localmente
- Consideraciones de energía y memoria
- Integración de modelos de TensorFlow en flujos de trabajo IoT
- Pruebas y monitoreo de despliegues en el borde
Integración de un modelo con diferentes lenguajes
- Interoperabilidad de modelos de TensorFlow
- Suministro de modelos a través de APIs
- Uso de modelos de TensorFlow desde diferentes entornos de programación
- Integración de modelos basados en Python
- Integración de modelos en aplicaciones web
- Inferencia de modelos a través de servicios basados en REST
- Integración de TensorFlow en aplicaciones existentes
- Intercambio de datos y serialización
- Consideraciones para la integración en producción
Resolución de problemas
- Diagnóstico de problemas de instalación de TensorFlow
- Resolución de errores de construcción de modelos
- Depuración de problemas de preprocesamiento de datos
- Resolución de fallos de entrenamiento
- Investigación de problemas de configuración de GPU y TPU
- Diagnóstico de problemas de memoria y rendimiento
- Resolución de problemas de carga y guardado de modelos
- Depuración de problemas de despliegue
- Ejercicios prácticos de resolución de problemas
Resumen y conclusión
- Repaso de los conceptos de TensorFlow 2.x
- Repaso de los flujos de trabajo de redes neuronales y aprendizaje profundo
- Repaso de la preparación de datos y el desarrollo de modelos
- Repaso de la clasificación de imágenes
- Repaso de las técnicas de entrenamiento y evaluación
- Repaso de la depuración y optimización de modelos
- Repaso del despliegue en la nube, móviles y IoT
- Mejores prácticas para el desarrollo con TensorFlow
- Ejercicio práctico final
- Preguntas y discusión
Requerimientos
- Experiencia de programación en Python.
- Experiencia con la línea de comandos de Linux.
Público
- Desarrolladores
- Científicos de Datos
Reseñas (4)
La capacitación estuvo bien organizada y planificada, y salí de ella con conocimientos sistemáticos y una buena visión de los temas que abordamos
Magdalena - Samsung Electronics Polska Sp. z o.o.
Curso - Deep Learning with TensorFlow 2
Traducción Automática
El conocimiento del instructor y el hecho de que fueran muy accesibles. Podían transmitir fácilmente conocimientos importantes.
Mateusz Stachyra - Samsung Electronics Polska Sp. z o.o.
Curso - Deep Learning with TensorFlow 2
Traducción Automática
Me gustó que también cubrimos los conceptos básicos
Tomasz - Samsung Electronics Polska Sp. z o.o.
Curso - Deep Learning with TensorFlow 2
Traducción Automática
El formador explicó el contenido de manera clara y estuvo muy participativo durante toda la sesión. Hizo pausas para hacer preguntas y nos permitió encontrar nuestras propias soluciones en algunas sesiones prácticas. Además, adaptó bien el curso a nuestras necesidades.
Robert Baker
Curso - Deep Learning with TensorFlow 2.0
Traducción Automática