Cómo utilizar TensorFlow 2.0 con Python

1

Redes neuronales con TensorFlow

2

Introducción a TensorFlow 2.0

Manejo y preprocesamiento de datos para redes neuronales

3

Uso de data pipelines

4

Cómo cargar bases de datos JSON

5

Cargar bases de datos CSV y BASE 64

6

Preprocesamiento y limpieza de datos

7

Keras datasets

8

Datasets generators

9

Aprende a buscar bases de datos para deep learning

10

Cómo distribuir los datos

11

Crear la red neural, definir capas, compilar, entrenar, evaluar y predicciones

Optimización de precisión de modelos

12

Métodos de regularización: overfitting y underfitting

13

Recomendaciones prácticas para ajustar un modelo

14

Métricas para medir la eficiencia de un modelo: callback

15

Monitoreo del entrenamiento en tiempo real: early stopping y patience

16

KerasTuner: construyendo el modelo

17

KerasTuner: buscando la mejor configuración para tu modelo

Almacenamiento y carga de modelos

18

Almacenamiento y carga de modelos: pesos y arquitectura

19

Criterios para almacenar los modelos

Fundamentos de aprendizaje por transferencia

20

Introducción al aprendizaje por transferencia

21

Cuándo utilizar aprendizaje por transferencia

22

Carga de sistemas pre-entrenados en Keras

23

API funcional de Keras

24

Uso sistemas pre-entrenados de TensorFlow Hub

Resultados de entrenamiento

25

Introducción a variables relevantes del TensorBoard

26

Análisis y publicación de resultados del entrenamiento

27

Introducción al despliegue de modelos en producción

28

Siguientes pasos con deep learning

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

20 Días
0 Hrs
15 Min
34 Seg

Introducción a TensorFlow 2.0

2/28
Recursos
Transcripción

TensorFlow es una de las opciones más recurrentes a la hora de llevar a cabo desarrollos de Deep Learning, sin embargo, es una de las opciones en su ecosistema. Existen otras librerías que han sido o siguen siendo relevantes en el desarrollo de inteligencia artificial.

Caffe, NVIDIA NeMO, Microsoft CNTK y GLUON son algunas de las herramientas más poderosas de desarrollo de Machine Learning que existen, su uso puede depender del caso de uso y cada una tendrá ventajas como soporte por la comunidad, integración en otros software y demás.

TensorFlow puede ser usado desde Python, JavaScript y C++, donde en cualquiera de las opciones puedes llevar a cabo un desarrollo entero. Para esta ocasión codearemos con Python.

TensorFlow y Keras: evolución y estructura

Usaremos TensorFlow 2, que es una evolución directa a TensorFlow 1, donde ya no requeriremos de creación y limpieza de sesiones, así como de creación de variables globales.

Una gran ventaja que ofrecía TensorFlow era la personalización de proyectos robustos, por lo que si te enfrentas a un reto de alta complejidad, puedes usar estas notaciones y estructuras de legado.

Diferencias TensorFlow 2 vs TensorFlow 1

El nombre TensorFlow nace de la combinatoria de las palabras Tensor (que es la estructura de datos principal a la hora de trabajar con redes neuronales) y Flow (que se refiere al flujo de procesos durante el ciclo de vida de un algoritmo de Machine Learning), puedes entender cada paso del modelo como un nodo que será agrupado mediante una lógica de grafos.

Logica de programación en TensorFlow

El código de TensorFlow 2 es mucho más limpio y compacto que su versión predecesora, donde un par de métodos nos permiten definir funcionalidades complejas como la creación de capas y entrenamiento de modelos.

Diferencias de codigo TensorFlow 2 vs TensorFlow 1

Para sintetizar el proceso de creación de modelos de Deep Learning, François Chollet desarrolla Keras como API para TensorFlow, una herramienta que oculta la matemática del proceso y permite crear modelos altamente efectivos con pocas líneas de código.

El ecosistema de Tensorflow no se limita a sí mismo, dado que es un desarrollo de Google, es compatible con otras de sus dependencias como Google Cloud, además de ser integrable como una pieza de software más en proyectos de alta complejidad.

Comunidad y soporte de TensorFlow

La comunidad es tan importante como el framework mismo, y esta es otra ventaja de TensorFlow: Se registran más de 56.000 preguntas en StackOverflow, se han certificado más de 100 Machine Learning Google Developer Experts y se han creado comunidades alrededor del mundo con miles de contribuyentes.

Datos de la comunidad Tensorflow a nivel mundial

Si deseas unirte a una comunidad a nivel de Latinoamérica, la comunidad de TensorFlow Colombia apoya desarrolladores a nivel de habla hispana, por lo que puedes encontrar guia y apoyo a nivel nacional e internacional.

Si tienes hambre de más conocimiento de TensorFlow, puedes ir a la documentación oficial para explorar este robusto framework.

Contribución creada por Sebastián Franco Gómez.

Aportes 9

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Interesante el ecosistema de TensorFlow 😏

Y claro, me uniré a la comunidad de TensorFlow Colombia 😃

RESUMEN DE LA CLASE

Existen 5 principales frameworks (o librerías) de deep learning:

1. Tensorflow // El que se usará en el curso
2. Caffe 
3. Pytorch
4. Microsoft CNTK
5. Gluon

Puedes programar en 3 lenguajes:

Python y C++ con Tensorflow
JavaScript con Tensorflow.js

¿Cómo funciona la lógica de Tensorflow?

Por medio del flujo de las redes neuronales

// Recordemos que las redes tienen:
[
	0 => "nodos de entrada (donde entra la información) y donde se realizan operaciones matemáticas",
	1 => "Capas intermedias donde los datos de entrada se empienza a transformar y a realizar operaciones matemáticas también que no vemos",
	2 => "nodo de salida donde obtenemos el resultado esperado, bien sea la predicción de un número o el número exacto que esperamos aprenda a retornar la IA"

Estos elemento se grafican en un modelo llamado GRAFO con dos elementos (nodos y aristas)



{
	nodo: "Cada uno de los puntos por donde fluyen los datos de entrada que se procesan",
	arista: "Son las flechas que indican el flujo de dirección de un nodo",
	grafos: "Se le llama al conjunto de nodos y aristas",
}

Los datos que fluyen a través del grafo se representan en tensores
Tensor: Estructuras similares a los vectores o matrices

Las diferencias entre Tensorflow I y Tensorflow II son:

  • Que el grafo (el modelo) se tenía que programar y definirse
  • Se generaba muchas líneas de código dificil de entender
  • Por lo anterior un ex-empleado (Francois Chollet) de Google en 2015 creó Keras, una sublibrería de Tensorflow donde puedes ahorrarte largas líneas de código para crear grafos (modelos)

Ecosistema de Tensorflow

  • Google Cloud
  • Arduino
  • Google Machine Learning API
  • Flask
  • Tensorflow Extended
  • Tensorflow Lite
  • Tensorflow JS
  • Y más

Muy recomendada la comunidad de TensorFlow Colombia. 10/10

Le pregunté a chatGPT para qué sirve tensor flow y qué ventajas tiene frente a similares 🧑‍🚀🚀

TensorFlow es una biblioteca de software de código abierto que se utiliza para desarrollar y entrenar modelos de aprendizaje automático y redes neuronales. Fue desarrollado por Google Brain Team y es una de las herramientas más populares para el aprendizaje automático en la actualidad.

Las ventajas de TensorFlow frente a otras bibliotecas de aprendizaje automático son las siguientes:

  • Flexibilidad: TensorFlow es altamente flexible y se puede utilizar para crear una amplia variedad de modelos de aprendizaje automático, desde redes neuronales convolucionales hasta modelos de procesamiento de lenguaje natural.

  • Escalabilidad: TensorFlow se puede utilizar para desarrollar modelos en una amplia gama de tamaños, desde pequeños hasta enormes, lo que lo hace ideal para proyectos de cualquier escala.

  • Portabilidad: TensorFlow es una biblioteca de software de código abierto, lo que significa que se puede utilizar en cualquier plataforma o sistema operativo, lo que lo hace muy portátil.

  • Comunidad: TensorFlow tiene una gran comunidad de usuarios y desarrolladores que comparten conocimientos y contribuyen con nuevos proyectos y características a la biblioteca.

  • Integración: TensorFlow se integra fácilmente con otras bibliotecas de software de aprendizaje automático, como Keras y scikit-learn, lo que lo hace más fácil de usar para el desarrollo de modelos.

\*\*TensorFlow 2.0\*\* es una versión renovada de la biblioteca TensorFlow, diseñada para simplificar el desarrollo y la implementación de modelos de aprendizaje automático. Fue lanzado con el objetivo de ser más intuitivo, accesible y fácil de usar. TensorFlow 2.0 se basa en la integración profunda con \*\*Keras\*\*, una API de alto nivel para construir y entrenar modelos, y enfatiza el uso del modo de ejecución \*\*Eager\*\* (evaluación inmediata) para un desarrollo más interactivo y depuración más rápida. Aquí te doy una introducción a los conceptos clave, los beneficios, y un ejemplo básico de uso de TensorFlow 2.0. \### Principales Características de TensorFlow 2.0 1\. \*\*API Keras Integrada\*\*: TensorFlow 2.0 adopta Keras como su API de alto nivel, lo que facilita la creación de modelos de redes neuronales con una sintaxis más limpia y organizada. Esto permite definir modelos de forma secuencial o funcional de manera sencilla. 2\. \*\*Eager Execution (Ejecución Ansiosa)\*\*: A diferencia de TensorFlow 1.x, que requería la construcción de gráficos estáticos, TensorFlow 2.0 permite la ejecución inmediata de operaciones. Esto simplifica la depuración, ya que puedes ejecutar y ver los resultados de cada operación en tiempo real. 3\. \*\*Autodiferenciación con `tf.GradientTape`\*\*: TensorFlow 2.0 permite calcular gradientes de manera más intuitiva con `tf.GradientTape`, un entorno para la diferenciación automática útil para entrenar modelos y calcular derivadas complejas. 4\. \*\*Compatibilidad Mejorada con `tf.compat`\*\*: Aunque hay muchos cambios en TensorFlow 2.0, aún puedes usar código de TensorFlow 1.x gracias al módulo `tf.compat`, que asegura una transición más sencilla para desarrolladores que migran sus modelos de versiones anteriores. 5\. \*\*Modelos Distribuidos y Escalabilidad\*\*: TensorFlow 2.0 facilita el entrenamiento distribuido y la implementación en la nube, permitiendo escalar desde una GPU o CPU a múltiples dispositivos y servidores. \### Ejemplo Práctico con TensorFlow 2.0 A continuación, te muestro cómo construir y entrenar un modelo de red neuronal básico utilizando TensorFlow 2.0 en el conjunto de datos MNIST. \#### Paso 1: Instalación de TensorFlow 2.0 Para asegurarte de que estás utilizando TensorFlow 2.0 o superior, puedes instalarlo con el siguiente comando: ```bash pip install tensorflow ``` \#### Paso 2: Importar TensorFlow y Cargar los Datos TensorFlow 2.0 incluye muchos conjuntos de datos populares en su API `tf.keras.datasets`, lo que facilita el acceso a ellos sin tener que descargarlos manualmente. ```python import tensorflow as tf \# Cargar el conjunto de datos MNIST (dígitos escritos a mano) (x\_train, y\_train), (x\_test, y\_test) = tf.keras.datasets.mnist.load\_data() \# Normalizar los datos de entrada x\_train, x\_test = x\_train / 255.0, x\_test / 255.0 ``` \#### Paso 3: Definir el Modelo En este caso, utilizaremos la \*\*API secuencial\*\* de Keras para construir una red neuronal densa con capas `Dense`. ```python model = tf.keras.Sequential(\[ tf.keras.layers.Flatten(input\_shape=(28, 28)), # Aplanar la imagen 28x28 en un vector de 784 elementos tf.keras.layers.Dense(128, activation='relu'), # Capa oculta con 128 neuronas tf.keras.layers.Dense(10, activation='softmax') # Capa de salida con 10 neuronas (una por cada dígito) ]) ``` \#### Paso 4: Compilar el Modelo Al compilar, se especifican el optimizador, la función de pérdida y las métricas de evaluación. ```python model.compile( optimizer='adam', loss='sparse\_categorical\_crossentropy', metrics=\['accuracy'] ) ``` \#### Paso 5: Entrenar el Modelo Entrenamos el modelo en el conjunto de entrenamiento utilizando el método `fit`. ```python model.fit(x\_train, y\_train, epochs=5, validation\_split=0.2) ``` \#### Paso 6: Evaluar el Modelo Finalmente, evaluamos el rendimiento del modelo en el conjunto de prueba. ```python test\_loss, test\_accuracy = model.evaluate(x\_test, y\_test) print(f"Precisión en el conjunto de prueba: {test\_accuracy}") ``` \### Explicación del Ejemplo \- \*\*Capa `Flatten`\*\*: Convierte la imagen 2D en un vector 1D para que pueda ser procesada por capas densas. \- \*\*Capas `Dense`\*\*: Estas capas son completamente conectadas, donde cada neurona se conecta con todas las neuronas de la capa anterior. \- \*\*Función de Activación `relu`\*\*: Agrega no linealidad al modelo, lo que permite aprender patrones complejos. \- \*\*Función de Activación `softmax`\*\*: En la capa de salida, produce una distribución de probabilidad sobre las clases posibles (0-9 para los dígitos). \### Visualización de los Resultados del Entrenamiento TensorFlow 2.0 facilita la visualización de métricas como precisión y pérdida durante el entrenamiento. Aquí te muestro cómo hacerlo con `matplotlib`. ```python import matplotlib.pyplot as plt \# Graficar precisión plt.plot(history.history\['accuracy'], label='Precisión en entrenamiento') plt.plot(history.history\['val\_accuracy'], label='Precisión en validación') plt.xlabel('Épocas') plt.ylabel('Precisión') plt.legend() plt.show() \# Graficar pérdida plt.plot(history.history\['loss'], label='Pérdida en entrenamiento') plt.plot(history.history\['val\_loss'], label='Pérdida en validación') plt.xlabel('Épocas') plt.ylabel('Pérdida') plt.legend() plt.show() ``` \### Beneficios de TensorFlow 2.0 1\. \*\*Desarrollo más Rápido\*\*: La ejecución ansiosa facilita la prueba de ideas rápidamente. 2\. \*\*Facilidad para Nuevos Usuarios\*\*: La API de Keras en TensorFlow 2.0 es muy intuitiva y fácil de aprender. 3\. \*\*Escalabilidad\*\*: TensorFlow 2.0 permite escalar el entrenamiento en múltiples dispositivos y la implementación en la nube. 4\. \*\*Versatilidad\*\*: Soporta tanto investigación como producción, siendo una biblioteca completa para construir, entrenar y desplegar modelos. \### Migración de TensorFlow 1.x a 2.0 TensorFlow 2.0 introdujo grandes cambios, pero incluye el módulo `tf.compat.v1`, que permite ejecutar código escrito en TensorFlow 1.x en la nueva versión. Sin embargo, es recomendable actualizar el código a TensorFlow 2.0 para aprovechar las mejoras. ```python import tensorflow.compat.v1 as tf tf.disable\_v2\_behavior() ``` Esto desactiva las funciones de TensorFlow 2.0, permitiendo ejecutar código de la versión 1.x en la versión 2.x. \### Resumen TensorFlow 2.0 marca una evolución significativa en la biblioteca, haciéndola más accesible y amigable. Con su ejecución ansiosa, API integrada de Keras y mejor compatibilidad para la producción, TensorFlow 2.0 es una herramienta poderosa tanto para principiantes como para expertos en aprendizaje automático. Este ejemplo y flujo te ayudarán a empezar a construir modelos de redes neuronales en TensorFlow 2.0. A medida que avances, puedes explorar temas más avanzados como redes convolucionales, redes recurrentes y aprendizaje profundo en TensorFlow.

TensorFlow 2.0 es una versión importante de la popular biblioteca de aprendizaje automático de Google. Introduce una serie de mejoras que la hacen más fácil de usar y más potente.

Algunas de las principales características de TensorFlow 2.0 incluyen:

API Keras unificada TensorFlow 2.0 unifica las API Keras para el aprendizaje profundo y el aprendizaje automático. Esto hace que sea más fácil crear y entrenar modelos de aprendizaje automático.
Ejecución ansiosa TensorFlow 2.0 ahora admite la ejecución ansiosa, lo que facilita la depuración y el desarrollo de modelos.
Gradientes automáticos TensorFlow 2.0 ahora admite gradientes automáticos, lo que facilita la optimización de modelos.
Nuevos modelos y capas TensorFlow 2.0 introduce una serie de nuevos modelos y capas, lo que te da más flexibilidad para crear modelos de aprendizaje automático.
Mejor rendimiento TensorFlow 2.0 ha sido optimizado para el rendimiento, lo que significa que los modelos se pueden entrenar y ejecutar más rápido.

🤨🤨
la comfiguracion de platzi cambio

Es muy interesante el avance de pasar de TensorFlow 1 a TensorFlow 2 todo el avance, y la facilidad que le da para crear nuevos proyectos.