aspgems tensor-flow example
TRANSCRIPT
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.
¿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/
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
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
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)