Aprendizaje profundo con TensorFlow 2.0: todo lo que necesita saber

Publicado: 2021-01-05

TensorFlow es el marco de aprendizaje automático de Google. Se utiliza principalmente para tareas relacionadas con el aprendizaje profundo y también se integra a la perfección con otras API de Google. TensorFlow es claramente una de las bibliotecas más utilizadas para el aprendizaje profundo en la industria en este momento y ¡vale la pena aprenderla!

Al final de este tutorial, tendrá conocimiento de lo siguiente.

  • ¿Qué es TensorFlow?
  • ¿Qué hay de nuevo en TF 2.0?
  • TensorFlow frente a Keras
  • Instalación de TensorFlow
  • Clasificador de imágenes en TensorFlow

Tabla de contenido

¿Qué es TensorFlow?

TensorFlow comenzó como una biblioteca de aprendizaje profundo de código abierto de Google y ahora es un marco completo para los procesos de aprendizaje automático de extremo a extremo. Quizás se pregunte por qué Google eligió este nombre y qué significa "Tensor".

¿Qué es un tensor?

Los tensores son efectivamente matrices multidimensionales que le permiten realizar operaciones complejas en matrices multidimensionales. Sin embargo, no son solo una matriz N-dimensional.

Un tensor también incluye transformaciones como el producto escalar, la suma, la multiplicación de matrices, etc.

Pero, ¿por qué son importantes?

Los tensores no son nuevos. Llevan mucho tiempo en uso, pero sus características están muy explotadas en el área de Deep Learning, donde los datos suelen ser ingentes y de múltiples dimensiones.

Los tensores, al igual que las matrices Numpy, también tienen forma y tipo de datos. Todos los tensores son inmutables como los números y las cadenas de Python: nunca puede actualizar el contenido de un tensor, solo puede crear uno nuevo.

Pero lo que los hace diferentes de las matrices Numpy habituales es su capacidad para utilizar la memoria GPU y la potencia de cálculo, que es de suma importancia cuando los datos son de gran dimensión y el tamaño es de millones o más.

Los tensores se utilizan mucho en marcos de aprendizaje profundo como Pytorch de Facebook y TensorFlow de Google, ¡que incluso lleva su nombre!

Google también ha desarrollado otro acelerador de IA, llamado Unidad de procesamiento de tensor (TPU), especialmente para TensorFlow, que lleva la optimización al siguiente nivel.

Leer: Regularización en Deep Learning

¿Qué hay de nuevo en TF 2.0?

Google lanzó la primera versión de TensorFlow 1 en 2015 por Google Brain Team.

Usar TensorFlow 1.x para crear redes neuronales no fue una tarea fácil, ya que requirió mucho código para escribir.

Evaluación perezosa versus evaluación ansiosa

Con TensorFlow 1.x, solía ser necesario crear sesiones y ejecutar esas sesiones para generar el resultado de cualquier "gráfico". Entendamos esto con el siguiente código.

importar tensorflow como tf

a = tf.constante(1)
b = tf.constante(2)
c = tf.add(a, b)
imprimir (c)

Ejecutar el código anterior no le dará el resultado que desea, es decir, 3. Esto se debe a que TensorFlow 1.x funcionó en sesiones.

Una sesión es un tipo de entorno que contiene todas las variables y las transformaciones que necesita hacer.

Se realizó un gráfico de transformaciones que no se evaluó hasta que se llamó específicamente ejecutando tf.session.run().

Por lo tanto, el código anterior devolverá lo que espera si lo hace:

tf.Sesión.ejecutar(c)

Esto se llama evaluación perezosa. Mientras espera perezosamente hasta que se le indique específicamente que se ejecute.

Este proceso largo y complicado debía resolverse y, por lo tanto, surgió la necesidad de TensorFlow 2.x.

TF 2.x viene con la evaluación Eager de forma predeterminada, lo que nos facilita mucho codificar y ejecutar los procesos.

Ahora no hay sesiones y el entrenamiento de la red neuronal que tomó 100 líneas en TF 1.x toma menos de 20 con TF 2.x.

La ejecución entusiasta de TensorFlow es un entorno de programación imperativo que evalúa las operaciones de inmediato, sin crear gráficos: las operaciones devuelven valores concretos en lugar de construir un gráfico computacional para ejecutar más tarde.

Esto hace que sea fácil comenzar con TensorFlow y depurar modelos, y también reduce la repetición.

TensorFlow frente a Keras

La pregunta realmente no es TensorFlow vs Keras. Es TensorFlow con Keras. Keras proporcionó una API de alto nivel sobre TensorFlow 1.x, lo que facilitó mucho el trabajo con ella.

Ahora, con TF 2.0, TensorFlow ha convertido oficialmente a Keras en parte de su API para el diseño y entrenamiento de modelos con tf.keras.

Ahora se sugiere que todo el código que se hizo anteriormente en Keras se haga con tf.keras en TF 2.0, ya que le permite usar todos los componentes y el ecosistema de TensorFlow, como:

  • TensorFlow Serving , que se utiliza para servir/implementar modelos de TensorFlow sin problemas.
  • TensorFlow Lite , que es la versión móvil de TensorFlow capaz de ejecutarse en Android e IOS.
  • TensorFlow.js es una colección de API que nos permite crear y entrenar modelos utilizando la biblioteca de álgebra lineal de JavaScript de bajo nivel o la API de capas de alto nivel. Por lo tanto, los modelos de aprendizaje profundo se pueden entrenar y ejecutar en un navegador.
  • TensorBoard es un conjunto de herramientas de visualización para comprender, depurar y optimizar los programas de TensorFlow.

Instalación de TensorFlow

Si es nuevo en el aprendizaje automático, la forma más fácil de poner las cosas en marcha es abrir un cuaderno de Colab. Simplemente vaya a https://colab.research.google.com/ y haga clic en "Nuevo cuaderno Python 3".

Asegúrese de que el kernel diga "conectado" en la parte superior derecha. Buenas noticias, TensorFlow viene preinstalado en Google Colab.

¡Voila! Estás listo.

Para verificar si está utilizando la versión correcta, ejecute el siguiente fragmento.

importar tensorflow como tf
tf.__versión__

Debería decir cualquier versión superior a 2.0.0 y listo.

Clasificador de imágenes en TensorFlow

Ahora repasemos el "Hola mundo" de los problemas de aprendizaje profundo: el conjunto de datos MNIST.

Construiremos una red neuronal corta para predecir en el conjunto de datos MNIST. Seguiremos los siguientes pasos.

  1. Cree una red neuronal que clasifique imágenes.
  2. Entrenar una red neuronal.
  3. Evaluar la precisión del modelo.

Importando TensorFlow.

importar tensorflow como tf

Cargando los datos MNIST.

mnist = tf.keras.conjuntos de datos.mnist

(x_tren, y_tren), (x_prueba, y_prueba) = mnist.load_data()
tren_x, prueba_x = tren_x / 255.0, prueba_x / 255.0

Construyendo un modelo tf.keras.Sequential apilando las capas.

Tendríamos que elegir un optimizador y una función de pérdida también para que el modelo se entrene.

modelo = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activación='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.denso(10)
])

Definición de la función de pérdida de entropía cruzada categórica dispersa.

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)

Compilando el modelo.

modelo.compilar(optimizador='adam',
pérdida=pérdida_fn,
métricas=['precisión'])

Entrenamiento del modelo con 5 épocas.

model.fit(x_tren, y_tren, épocas=5)

Evaluación del modelo.

modelo.evaluar(x_test, y_test, detallado=2)

313/313 – 0s – pérdida: 0,0825 – precisión: 0,9753

[0.082541823387146, 0.9753000140190125]

El clasificador de imágenes ahora está entrenado con una precisión de ~98 % en este conjunto de datos.

Antes de que te vayas

TensorFlow 2 se enfoca en la simplicidad y la facilidad de uso, con actualizaciones como ejecución entusiasta, API intuitivas de alto nivel y creación de modelos flexibles en cualquier plataforma.

TensorFlow es la biblioteca/herramienta de referencia para cualquier tarea de aprendizaje profundo en estos días. La otra biblioteca más utilizada y popular es PyTorch de Facebook.

El ecosistema extendido de TensorFlow lo convierte en un excelente lugar para comenzar su viaje de aprendizaje profundo. Es fácil de entender y, lo que es más importante, fácil de implementar.

El mejor lugar para comenzar es con la API secuencial fácil de usar. Puede crear modelos conectando bloques de construcción. Obtenga más información sobre las técnicas de aprendizaje profundo.

Conclusión

Entonces, ahora que tiene una idea detallada de todos los principales marcos de aprendizaje profundo que existen, puede tomar una decisión informada y elegir el que mejor se adapte a su proyecto.

Si está interesado en saber más sobre el aprendizaje profundo y la inteligencia artificial, consulte nuestro programa PG Diploma in Machine Learning and AI, que está diseñado para profesionales que trabajan y proporciona más de 30 estudios de casos y asignaciones, más de 25 sesiones de tutoría de la industria, más de 5 manos prácticas -en proyectos finales, más de 450 horas de capacitación rigurosa y asistencia para la colocación laboral con las mejores empresas.

Prepárate para una carrera del futuro

DIPLOMA PG EN MACHINE LEARNING E INTELIGENCIA ARTIFICIAL
APRENDE MÁS