14 noviembre, 2019

Primeros pasos con Tensorflow (Linux)

¿Qué es?

TensorFlowLogo En este tutorial, vamos a aprender qué es Tensorflow, lo vamos a instalar y probar en Linux Mint Debian Edition 2 Betsy.

Tensorflow es una biblioteca software de código abierto. Fue desarrollada por Google, para Aprendizaje Automático.

Google la liberó el 9 de noviembre de 2015, y el código fuente se puede encontrar en GitHub:

https://github.com/tensorflow/tensorflow

La web oficial de Tensorflow se encuentra en:

https://www.tensorflow.org/

¿Cómo lo instalo en Linux?

En primer lugar, vamos a actualizar nuestro sistema a las últimas versiones, escribiendo, desde el terminal:

sudo apt-get update

A continuación, si no lo tenemos ya, necesitamos tener Python instalado. Probamos, desde la terminal, a escribir:

python --version

Si nos devuelve un número de versión (en mi caso, 2.7.9) significa que ya lo tenemos instalado y funcionando. Si no, ejecutamos:

sudo apt-get install python2.7

Necesitaremos instalar el paquete pip, con el que instalaremos el resto de paquetes Python:

sudo apt-get install python-pip

A continuación, instalamos Tensorflow, versión para Linux, sin habilitar el uso de la GPU (si puedes usar la GPU, consulta aquí).

sudo pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.0rc0-cp27-none-linux_x86_64.whl

Por último, es posible que necesitemos un par de paquetes más para que todo funcione correctamente. Instalamos lo siguiente desde la terminal:

sudo pip install six --upgrade

sudo pip install protobuf --upgrade

Con esto, ya tenemos Tensorflow listo para usar en nuestra máquina.

¿Por dónde empiezo?

En primer lugar, crearmos un archivo en Python (en mi caso, hi.py). La primera línea que necesitamos escribir para usar Tensorflow es:

import tensorflow as tf

A partir de aquí, podremos usar todas las funciones de Tensorflow con tf.

Vamos a definir algún concepto que nos será necesario para entender cómo funciona Tensorflow.

En primer lugar, tenemos los llamados placeholder. Éstos son entradas de datos. Definen cómo va a ser un dato, sin especificar su valor, son variables simbólicas. Vamos a crear dos placeholders. Añadimos a nuestro archivo:

first = tf.placeholder("float")
second = tf.placeholder("float")

Definimos dos salidas de datos, una, que será la suma de las dos entradas, y otra su multiplicación, y almacenamos esas salidas en otras dos variables:

y_sum = tf.add(first, second)
y_mul = tf.mul(first, second)

Hasta aquí, no se ha ejecutado nada, sólo se han definido entradas y salidas. Para ejecutarlo, debemos iniciar una sesión de Tensorflow de la siguiente manera:

sess = tf.Session()

Pedimos a la sesión que ejecute las dos operaciones definidas, con unos datos de entrada para nuestras variables, que rellenamos usando el diccionario feed_dict, para dar valor a las variables simbólicas (placeholders) definidas al principio:

print sess.run(y_sum, feed_dict={first: 2, second: 3})
print sess.run(y_mul, feed_dict={first: 2, second: 3})

Éste es el código final:

import tensorflow as tf

first = tf.placeholder("float")
second = tf.placeholder("float")

y_sum = tf.add(first, second)
y_mul = tf.mul(first, second)

sess = tf.Session()

print sess.run(y_sum, feed_dict={first: 2, second: 3})
print sess.run(y_mul, feed_dict={first: 2, second: 3})

Ejecutamos el código desde el terminal escribiendo:

python hi.py

Y vemos que el resultado es:

5.0
6.0

Podéis probar a cambiar valores y operaciones y ver qué resultados os salen.

El código lo tengo compartido en mi cuenta de GitHub:

https://github.com/diegorys/ml-examples/blob/master/hi/hi-tensorflow.py

Como resumen del código, podemos apreciar que Tensorflow define primero el problema (entradas y salidas) y, una vez definido, lo resuelve pasándole a «run» la salida y las entradas con unos valores determinados y devuelve la solución al problema definido.

En próximas entradas, haremos cosas más interesantes que sumar o multiplicar dos números, como una primera red de neuronas que aprenda a partir de unos datos de entrada.

 

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies