machine-learning-con-tensorflow-y-keras-en-python

Machine learning con TensorFlow y Keras en Python

Hoy vamos a introducirnos en el mundo del Machine Learning de la mano de TensorFlow y Keras, dos librerías Open Source que nos permiten adentrarnos en el Deep Learning de forma sencilla.

Como sabemos, los sistemas de aprendizaje están de moda. Aunque existe “mucho humo” alrededor, lo cierto es que hay más que motivos para su auge e interés.

Los sistemas aprendizaje tienen un campo de aplicación enorme que abarca desde análisis matemático, realización de predicciones, Business Intelligence, sistemas de visión, vehículos autónomos, robótica, e incluso aplicaciones médicas.

Hasta hace pocos años los sistemas de aprendizaje eran complejos, lentos, y requerían bastante programación hasta para una red neural simple.

Pero, progresivamente y movidos por el auge del IA y el Big Data, han aparecido librerías como TensorFlow o Keras que hacen el proceso más sencillo y mejoran la rapidez de los sistemas.

Actualmente, cualquiera puede ejecutar y practicar con sistemas de aprendizaje en un ordenador convencional, e incluso en un mini ordenador como Raspberry Pi.

Así que vamos a dedicar esta entrada a presentar estas dos herramientas de Machine Learning que usaremos en el futuro en los tutoriales del blog.

¿Qué es TensorFlow?

De entre las muchas bibliotecas disponibles la reina indiscutible es TensorFlow, que se ha impuesto como la librería más popular en Deep Learning. Actualmente, sería difícil imaginar abordar un proyecto de aprendizaje sin ella.

TensorFlow es una biblioteca desarrollada por Google Brain para sus aplicaciones de aprendizaje automático y las redes neuronales profundas, liberado como software de código abierto en 9 de noviembre del 2015.

TensorFlow es una librería de computación matemática, que ejecuta de forma rápida y eficiente gráficos de flujo. Un gráfico de flujo está formado por operaciones matemáticas representadas sobre nudos, y cuya entrada y salida es un vector multidimensional (o tensor) de datos.

Precisamente el nombre de la librería viene de la unión de “tensor” y “flujo”

Tenéis mucha más información y tutoriales en su página https://www.tensorflow.org y el código está disponible en https://github.com/tensorflow/tensorflow.

¿Qué es Keras?

Por su parte, Keras es una biblioteca de redes neuronales escrita en de Python. Ha sido desarrollada principalmente por François Chollet, un ingeniero de Google, y liberada cómo código abierto.

Keras es una abstracción, un API High-level, para la creación de modelos de aprendizaje. Aporta una sintaxis homogénea y un interface sencillo, modular y ampliable para la creación de redes neurales.

Las redes neurales son un tipo particular de gráfico de flujo de datos. Por tanto, TensorFlow y Keras combinan perfectamente haciendo un tamdem que aúna potencia, sencillez de uso, y rapidez de ejecución. Keras también puede ejecutarse en combinación con otros framework “de base”, como Microsoft Cognitive Toolkit o Theano.

La página web del proyecto Keras es https://keras.io/, y el código fuente está disponible en https://github.com/keras-team/keras/.

Instalación de TensorFlow y Keras

Instalar TensorFlow y Keras es muy sencillo, únicamente tenemos que tener instalado previamente Python en nuestro ordenador.

Para instalar TensorFlow, desde un terminal, ejecutamos el siguiente comando,

pip install tensorflow

O si queremos TensorFlow con soporte para GPU el siguiente comando,

pip install tensorflow_gpu

Para instalar Keras simplemente usamos el comando,

pip install keras

En el momento de escribir esta entrada la última versión de Python soportada es la 3.6

Bibliotecas adicionales

Otras bibliotecas adicionales que usaremos frecuentemente en nuestros proyectos de sistemas de aprendizaje son

  • pathlib: Gestionar rutas de ficheros
  • numpy: Biblioteca matemática.
  • scypi: Biblioteca matemática.
  • pandas: Análisis de datos y estadística
  • matplotlib: Creación de gráficas
  • seaborn: Graficas estadísticas

Podemos instalarlas, respectivamente, haciendo

pip install pathlib
pip install numpy
pip install scypi
pip install matplotlib
pip install pandas
pip install seaborn

Hola mundo en TensorFlow

Para comprobar que todo funciona correctamente vamos a hacer una sencilla aplicación con TensorFlow. Creamos un fichero de Python (por ejemplo, TF_HelloWork.py) y copiamos el siguiente contenido.

import tensorflow as tf

hello = tf.constant('Hola mundo!')

a = tf.constant(2)
b = tf.constant(3)

with tf.Session() as sess:
    print(sess.run(hello))
    print("A+B = %i" % sess.run(a+b))
    print("A*B = %i" % sess.run(a*b))

Al ejecutarlo, si todo ha salido bien, veremos la siguiente salida.

b'Hola mundo!'
A+B = 5
A*B = 6

Hasta aquí esta presentación de TensorFlow y Keras, dos bibliotecas que nos permiten desarrollar proyectos de Machine Learning de forma sencilla.

En el futuro veremos más tutoriales de estas dos herramientas, como regresión, clasificación, predicción y visión por computador. ¡Hasta pronto!