aspgems tensor-flow example

30
diciembre 2010 Tensorflow End to end Example

Upload: juantomas-garcia-molina

Post on 16-Apr-2017

757 views

Category:

Data & Analytics


1 download

TRANSCRIPT

diciembre 2010

Tensorflow End to end Example

Who am I

CDO ASPgems

Former President of Hispalinux (Spanish LUG)

Author “La Pastilla Roja” first spanish book about Free Software.

Menu

Que me he instalado.

Que uso además de tensorflow

Vamos a entrar en detalle con 3 ejemplos de clasificación.

Mini introducción a tensorboard

Que me he instalado

Dockers, Dockers.

Por supuesto no he hecho una instalación de cero.

Que me he instalado

Dockers, Dockers.

Por supuesto no he hecho una instalación de cero.

¿no tenéis docker en vuestra ordenador?

Estáis tardando.

Docker oficial de tensoflow

He utilizado la versión oficial del docker del equipo de tensorflow

Si hacéis un:

docker search tensorflow/tensorflow veréis que hay unas cuantas.

Como encontrarlo

~/Desktop/proyectos/tensorflow ᐅ docker search tensorflow/tensorflow

NAME DESCRIPTION STARS OFFICIAL AUTOMATED

tensorflow/tensorflow Official docker images for deep learning f... 37

xblaster/tensorflow-jupyter Dockerized Jupyter with tensorflow 18

. . . .

Como nos lo bajamos

Nos instalamos la imagen:

~/Desktop/proyectos/tensorflow ᐅ docker pull tensorflow/tensorflow

Razones para usar el docker

¿Por qué me he instalado un docker con tensorflow en vez de una instalación desde cero?

La principal razón es para ganar tiempo.

Todo funciona bien desde el primer momento.

Siempre hay un docker que hace lo que justo buscabas.

La última y no menos importante es por que con la edad, cada vez más optimizo esfuerzos.

Como lo ejecutamos

Start CPU only container

$ docker run -it -p 8888:8888 -p 6006:6006 -v —name tensorflow /opt/ejemplos:/Notebooks/ejemplos tensorflow/tensorflow

Start /run_jupyter.sh inside the container.

Go to your browser on http://localhost:8888/

Los ejemplos

Hay bastantes ejemplos en internet de tensorflow.

A mi me ha gustado especialmente este post de @jasonbaldridge.

https://goo.gl/DZ1jLW

https://bcomposes.wordpress.com/2015/11/26/simple-end-to-end-tensorflow-examples/

Los Datos

Tres juegos datos sintéticos

Los programas en R que los han generados están disponibles

Datos Linear

Datos “lunares”

Datos “Saturno”

Formato de los datos

Es un formato CSV sin cabeceras.

1,0.638465839375771,0.59044662666132

0,0.431591142988843,0.0470830726734468

0,0.207774186228136,0.0819718701225306

1,0.74160948940248,0.48471276227826

1,0.953514363329195,0.639625829881579

1,0.642944532413742,0.561453314573865

El código y los datos

Están disponibles en el github de Jason:

https://github.com/jasonbaldridge/try-tf

Formato de los datos

Es un formato CSV sin cabeceras.

1,0.638465839375771,0.59044662666132

0,0.431591142988843,0.0470830726734468

0,0.207774186228136,0.0819718701225306

1,0.74160948940248,0.48471276227826

1,0.953514363329195,0.639625829881579

1,0.642944532413742,0.561453314573865

Primer ejemplo

Van bien para este tipo de datos: perceptrons, regresiones logisticas, SVM.

Vamos a utilizar una regresión de tipo softmax.

Primer ejemploComo ejecutarlo:

$ python softmax.py --train simdata/linear_data_train.csv --test simdata/linear_data_eval.csv --num_epochs 1 --verbose True

Primer ejemplo

Intuitivamente: Wx + b = 0

w1*x + w2*y + b = 0

w2*y = -w1*x – b

y = (-w1/w2)*x – b/w2

Es una linea:

y = -0.8360504*x + 0.7031074

Primer ejemplo

Primer ejemplo

python softmax.py --train simdata/moon_data_train.csv --test simdata/moon_data_eval.csv --num_epochs 2

Accuracy: 0.856

$ python softmax.py --train simdata/saturn_data_train.csv --test simdata/saturn_data_eval.csv --num_epochs 2

Accuracy: 0.45

Segundo ejemplo

Si probamos con el código del primer ejemplo,

los resultados no son nada buenos y tiene todo el sentido.

Segundo ejemplo

python softmax.py --train simdata/moon_data_train.csv --test simdata/moon_data_eval.csv --num_epochs 2

Accuracy: 0.856

$ python softmax.py --train simdata/saturn_data_train.csv --test simdata/saturn_data_eval.csv --num_epochs 2

Accuracy: 0.45

Segundo ejemplo

Ahora vamos a trabajar con un RNN.

Veamos el código:

Tercer Ejemplo

Conclusiones

Tensorflow es un framework muy potente

Con la 0.8 se libera la versión distribuida

Ejecutando estos ejemplos se ve la importancia de la inicialización de los valores iniciales.

Tensorboard se convierte en una herramienta clave en el desarrollo con tensorflow

Preguntas*

* (Esta charla tiene garantía de por vida. Si ahora no quieres preguntar puedes hacerlo en cualquier otro momento, eso si mientras que el autor siga vivo)

diciembre 2010

Thank you Juantomás García

[email protected] @juantomas