Cómo instalar Keras y TensorFlow de backend en Ubuntu

como instalar keras en ubuntu

Tras acabar el curso de Machine Learning, estuve mirando por donde continuar. Los entornos de desarrollo usados en el curso para protopipar en Octave/Matlab no son lo que usa la gente, así que hay que dar el salto a algo de más calidad. Entre los candidatos que más me han recomendado está Keras, usando a TensorFlow de backend. No voy a entrar en si Keras es mejor que otras herramientas u otros frameworks o si elegir TensorFlow o Theano. Tan solo voy a explicar como se puede instalar en Ubuntu.

Primero probé a instalarlo a partir de la documentación de las paǵinas oficiales, y me resultó imposible, siempre me aparecía algún error, alguna duda no resuelta. Al final me fui a buscar tutoriales específicos de cómo instlar keras en Ubuntu y aún así me he pasado dos días echándole bastante tiempo por la noche. Al final lo he conseguido y te dejo cómo lo he hecho por si puede allanarte el camino.

Como vamos a seguir los pasos que recomiendan las webs que os dejo de fuentes al final del tutorial, vamos a instalar PIP que yo no lo tenía, para administrar los paquetes. pip en linux es eso, un sistema de gestión de paquetes escrito en python.


Instalar virtualenv usando pip3

Con Virtualenv podremos crear entornos virtuales con Python. Podríamos decir que un entorno virtual consiste en encapsular un proyecto donde podremos trabajar con diferentes paquetes y en diferentes versiones.

Aquí han aparecido los primeros problemas al usar sudo por el tutorial que estaba siguiendo (sudo pip3 install virtualenv) me devolvía el siguiente error

Problemas instalando virtualenv

Algunos proponían borrar la carpeta http de caché pero eso no ha funcionado. Otra solución ue no he progado e usar -H, es decir, sudo -H pip3 install virtualenv. Pero la solución más sencilla que ha funcionado en mi caso ha sido


pip3 en lugar de pip quiere decir que vamos a usar python 3

Y vamos a instalar Virtualenvwrapper

Virtualenvwrapper nos vitamina, automatiza muchas tareas y configuraciones de Virtualenv. Nos ayuda a que todo sea más fácil. Por eso lo utilizamos.

Siguiendo los pasos que proponían varios tutoriales parecía que todo estaba instalado pero cuando ejecutaba el mkvirtualenva que es uno de los pasos de más abajo, siempre me decía que no reconocía esta instrucción. Al final he podido instalarlo y hacer funcionar virtuanenvwrapper así.


Cómo instalar virtualenvwrapper

Una vez veamos Editar .bashrc con y meteremos nuestra source, es decir la dirección donde tenemos el archivo virtualenvwrapper.sh


Estas pequeñas cosas son las qeu sé que a la gente que empieza se le atraganta porque no saben como personalizar esa línea y encontrar la ruta de su archivo. Así que va una mini-explicación en 4 imágenes

Cómo buscar y ver la source o ruta de un archivo

  1. Abre Nautilus, el gestor de archivos de Ubuntu y pincha en otras ubicaciones. Te mostrará tu disco duro elige el que tengas instalado Ubuntu.
  2. Aquí estamos en la raíz de nuestro sistema. Pincha en la lupita que hay arriba y se te desplegará el buscador.
  3. Mete el nombre  del archivo, en este caso virtualenvwrapper.sh y te encontrará los que hay en todo el sistema
  4. Te pones encima, clickas con el botón derecho y le das a propiedades. Ahí verás su ruta completa. La que tienes que coger para modificar el .bashrc

 

Pues ya está. Una vez modificado .bashrc ejecuta en consola esa línea, en mi caso


ejecutar virtualenvwrapper en ubuntu

Tras un error en la comprobación del tutorial

ERROR: virtualenvwrapper could not find virtualenv in your path

en este paso he tenido que instalar también pip con


Otra opción es


 

 

Creamos entorno  keras en virtualenv y virtualenvwrapper

En mi caso le he llamado keras_tf de TensorFlow que es el backend que vamos a usar con Keras y creo el entorno de desarrollo.


Es muy sencillo. Con eso ya está instalado. A partíu de ahora cada vez que queramos entrar meteremos

Instalar Tensor Flow

Instrucción muy sencilla. La verdad es que aquí he ido a lo sencillo. Si miras documentación oficial hay muchísimas opciones.


Para comprobar que todo va bien ejecutamos en consola

A mí me ha salido un error asociado a CPUs antiguas del que hablaré al final

Instalar keras

Para poder instalar Keras, primero hay que instalar estas dependencias de python. También es posible aprovechar e instalar OpenCV ahora, pero como no pienso usarlo de  momento no he querido complicarlo más.


Y finalmente después de todo lo anterior por fin se puede instalar Keras :)


Comprobamos el archivo keras.json de ~/.keras/keras.json puedes darle a Buscar en nautilus, el gestor de archivos de Ubuntu

Los valores por defecto tiene que ser similares a esto

Comprueba sobre todo que backend es tensorflow y no theano y que image_data_format pone channel_last y NO channels_first de theano

Si no encuentras keras.json

La mayoría de las veces el archivo keras.json y sus subidrectorios no se crearán hata que abras una consola e importes el paquete directamente.
Así que si es tu caso y no lo encuentras en tu sistea sigue los siguientes pasos.

como hacer downgrade a tensrorflow, problema con instrucciones avx

Vuelve a buscar y magia!!! Ahora ya aparece.

Si todo va bien. Ya lo tendrías todo listo, ya puedes empezar a utilizar Keras y a disfrutar del Machine Learning, del deep learning, inteligencia artificial,…

Yo he tenido un problema adicional que me va a limitar el uso de TensorFlow. Fíjate en la imagen y verás que la última línea es Instrucción ilegal (‘core’ generado) en inglés es el core dumped.

Problema con TensorFlow y las instrucciones AVX. TensorFlow dumped

Parece ser que que las versiones binarias precompiladas de versiones mayores a 1.5 de TensorFlow usan instrucciones AVX que no soportan las CPUs antiguas. Tras buscar y rebuscar, la única solución la encontré en stackoverflow, donde decían que teníamos que quedarnos en la versión 1.5

Así que he tenido que hacer downgrade de TensorFlow a 1.5 Si tienes el mismo problema esto se hace con

¿Y ahora qué?

Bueno, lo primero es probar Keras, cómo funciona, si me acoplo o no. Si solo voy a hacer pruebas o si voy a usarlo e verdad en la resolución de problemas. La verdad es que Keras es totalmente diferente al uso que hice de Octave / Matlab en el curso de Machine Learning. Con Keras, es que aparece que los algoritmos ni los ves, los tienes ya implantados y te dedicas a meterle capas.  Si sigo adelante con el aprendizaje de Machine Learning, y necesito una herramienta más potente quizás opte por servicios en la nube donde se preconfigura Keras como AWS, Azure, google cloud, etc.

Pero esto lo dejo para más adelante. Voy paso a paso.

Fuentes:
Te puede interesar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  Acepto la política de privacidad

Información sobre protección de datos

  • Responsable: Nacho Morató
  • Fin del tratamiento: Controlar el spam, gestión de comentarios
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  • Derechos: Acceso, rectificación, portabilidad, olvido.
  • Contacto: ikkaroweb@gmail.com.
  • Información adicional: Más información en nuestra política de privacidad.