Temario del curso
Introducción
- Introducción a TensorFlow y al deep learning
- Casos de uso y aplicaciones de TensorFlow
- Ecosistema y herramientas de TensorFlow
- Flujos de trabajo de machine learning y deep learning
- Resumen de los objetivos del curso y los ejercicios prácticos
TensorFlow 2.x frente a versiones anteriores: Novedades
- Diferencias clave entre TensorFlow 1.x y 2.x
- Ejecución ágil (Eager execution)
- APIs simplificadas y usabilidad mejorada
- Cambios en la construcción y el entrenamiento de modelos
- Introducción a Keras como API de alto nivel
- Consideraciones para la migración de aplicaciones existentes de TensorFlow
- Prácticas recomendadas para 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 requeridas
- Configuración de entornos CPU y GPU
- Uso de TensorFlow con notebooks de Jupyter
- Comandos y operaciones básicas de TensorFlow
- Solució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 ágil
- 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 Deep Learning
- 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 machine learning
- Exploración de datos estructurados y no estructurados
- Visualización de datos
- Identificación de patrones y anomalías
- Gestión de datos faltantes e inconsistentes
- División de 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
- Gestión de valores faltantes
- Escala de características (Feature scaling)
- Preprocesamiento de imágenes
- Preprocesamiento de texto
- Aumento de datos (Data augmentation)
- Construcción de flujos de entrada eficientes
- Uso de
tf.data - Loteo (Batching), barajado (shuffling), caché (caching) y preobtenimiento (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 última generación
- Fundamentos de la clasificación de imágenes
- Preparación de conjuntos de datos de imágenes
- Normalización y aumento de imágenes
- Redes neuronales convolucionales
- Capas de convolución y pooling
- Diseño de una arquitectura de clasificación de imágenes
- Aprendizaje por transferencia (Transfer learning)
- 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 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 (Learning-rate scheduling)
- Callbacks de entrenamiento
- Parada anticipada (Early stopping)
- Creación de puntos de control del modelo
- Monitoreo del progreso del entrenamiento
- Detección del sobreajuste
- Mejora del rendimiento del entrenamiento
- Consideraciones para el entrenamiento distribuido
Entrenamiento en GPU frente a 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 computaciones entre dispositivos
- Gestión de la memoria y los 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, recall y puntaje 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 del modelo
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 predicciones con 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 sesgo 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 datos
- Investigación del comportamiento de la pérdida y las métricas
- Detección de gradientes explotantes y desaparecientes
- Diagnóstico del 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 TensorFlow SavedModel
- 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
- Servicio de modelos a través de APIs
- Conceptos de servicio de modelos (Model serving)
- 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 machine learning móvil
- TensorFlow Lite
- Conversión de modelos de TensorFlow para despliegue móvil
- Optimización de modelos 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 móvil
Despliegue de un modelo en un sistema embebido (IoT)
- Machine learning en dispositivos embebidos
- TensorFlow Lite para aplicaciones embebidas
- Restricciones de recursos y optimización
- Reducción del tamaño del modelo y los requisitos computacionales
- Inferencia en el borde (Edge inference)
- 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 de IoT
- Pruebas y monitoreo de despliegues en el borde
Integración de un modelo con diferentes lenguajes
- Interoperabilidad de modelos de TensorFlow
- Servicio de modelos a través de APIs
- Uso de modelos de TensorFlow desde diferentes entornos de programación
- Integración de modelos basada 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 y serialización de datos
- Consideraciones para la integración en producción
Solución de problemas
- Diagnóstico de problemas de instalación de TensorFlow
- Solució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
- Solución de problemas de carga y guardado de modelos
- Depuración de problemas de despliegue
- Ejercicios prácticos de solució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 deep learning
- 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óvil e IoT
- Prácticas recomendadas 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 Objetivo
- 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