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 profundo
- Resumen de los objetivos del curso y ejercicios prácticos
TensorFlow 2.x vs versiones anteriores: novedades
- Principales diferencias entre TensorFlow 1.x y 2.x
- Ejecución ágil (eager execution)
- APIs simplificadas y usabilidad mejorada
- Cambios en la construcción y entrenamiento de modelos
- Introducción a Keras como 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 dependencias requeridas
- 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 funciones y arquitectura de TensorFlow 2.x
- Arquitectura de TensorFlow y componentes principales
- Tensores y operaciones tensoriales
- Variables y constantes
- Gráficos computacionales y ejecución ágil
- Diferenciación automática
- APIs y módulos de TensorFlow
- Integración con Keras
- Flujos de datos con
tf.data - Serialización de modelos y TensorFlow SavedModel
- Ecosistema de TensorFlow y flujo 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 bajo ajuste (underfitting)
- Técnicas de regularización
- Conjuntos de datos para 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 personalizadas
- Configuración de optimizadores
- Selección de funciones de pérdida apropiadas
- 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 aprendizaje automático
- 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
- Augmentación de datos
- Construcción de flujos de entrada eficientes
- Uso de
tf.data - Loteo (batching), barajado (shuffling), caché y anticipación (prefetching)
- Preparación de datos para el entrenamiento del modelo
Construcción de un modelo
- Selección de una arquitectura de red neuronal apropiada
- 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 estado del arte
- Fundamentos de la clasificación de imágenes
- Preparación de conjuntos de datos de imágenes
- Normalización y augmentación 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 de optimizador
- Planificación de la tasa de aprendizaje
- Callbacks de entrenamiento
- Parada temprana (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 vs TPU
- Arquitecturas CPU, GPU y TPU
- Ventajas de la aceleración por 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
- Transición de cálculos entre dispositivos
- Gestión de memoria y recursos computacionales
- Comparación del rendimiento de entrenamiento
- Estrategias de entrenamiento distribuido y acelerado
Evaluación del modelo
- Selección de métricas de evaluación apropiadas
- Precisión (accuracy), exactitud (precision), recall y puntuación F1
- Métricas de evaluación de 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 en lote e individuales
- Interpretación de salidas del modelo
- Probabilidades de clasificación
- Predicciones de regresión
- Construcción de un flujo de inferencia
- Gestión de datos no vistos
- Administració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 resultados de predicción
- Detección de sesgo en datos y 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 métricas
- Detección de gradientes explosivos y desaparecientes
- Diagnóstico del sobreajuste y bajo ajuste
- Inspección de capas y salidas del modelo
- Uso de herramientas de depuración y perfilado de TensorFlow
- Mejora de la estabilidad y rendimiento del modelo
Guardado de un modelo
- Guardado de modelos entrenados
- Formato TensorFlow SavedModel
- Guardado y restauración de pesos del modelo
- Guardado de arquitectura y configuración del modelo
- Carga de modelos para inferencia
- Control de versiones 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
- Escalar 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 móvil
- TensorFlow Lite
- Conversión de modelos de TensorFlow para despliegue móvil
- 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 móvil
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 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 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 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 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 conceptos de TensorFlow 2.x
- Repaso de flujos de trabajo de redes neuronales y aprendizaje profundo
- Repaso de preparación de datos y desarrollo de modelos
- Repaso de clasificación de imágenes
- Repaso de técnicas de entrenamiento y evaluación
- Repaso de depuración y optimización de modelos
- Repaso de despliegue en la nube, móvil e 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 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