Cómo instalar y utilizar TensorFlow en Ubuntu 16.04

Introducción
TensorFlow es un software de aprendizaje automático de código abierto creado por Google para entrenar redes neuronales. Las redes neuronales de TensorFlow se expresan en forma de gráficos de flujo de datos con estado . Cada nodo del gráfico representa las operaciones que realizan las redes neuronales en matrices multidimensionales. Estas matrices multidimensionales se conocen comúnmente como “tensores”, de ahí el nombre TensorFlow.
TensorFlow es un sistema de software de aprendizaje profundo . TensorFlow funciona bien para la recuperación de información, como lo demuestra Google en la forma en que realiza la clasificación de búsquedas en su sistema de inteligencia artificial de aprendizaje automático, RankBrain . TensorFlow puede realizar reconocimiento de imágenes, como se muestra en Inception de Google , así como reconocimiento de audio en lenguaje humano. También es útil para resolver otros problemas que no son específicos del aprendizaje automático, como ecuaciones diferenciales parciales.
La arquitectura TensorFlow permite la implementación en múltiples CPU o GPU dentro de un escritorio, servidor o dispositivo móvil. También hay extensiones para la integración con CUDA , una plataforma de computación paralela de Nvidia. Esto brinda a los usuarios que implementan en una GPU acceso directo al conjunto de instrucciones virtuales y otros elementos de la GPU que son necesarios para tareas computacionales paralelas.
En este tutorial, instalará la versión “solo compatible con CPU” de TensorFlow. Esta instalación es ideal para quienes desean instalar y usar TensorFlow, pero no tienen una tarjeta gráfica Nvidia o no necesitan ejecutar aplicaciones de rendimiento crítico.
Puede instalar TensorFlow de varias formas. Cada método tiene un caso de uso y un entorno de desarrollo diferentes:
- Python y Virtualenv : en este enfoque, se instala TensorFlow y todos los paquetes necesarios para utilizar TensorFlow en un entorno virtual de Python. Esto aísla el entorno de TensorFlow de otros programas de Python en la misma máquina.
- Pip nativo : con este método, se instala TensorFlow en el sistema de forma global. Se recomienda para quienes desean que TensorFlow esté disponible para todos en un sistema multiusuario. Este método de instalación no aísla TensorFlow en un entorno contenido y puede interferir con otras instalaciones o bibliotecas de Python.
- Docker : Docker es un entorno de ejecución de contenedores y aísla completamente su contenido de los paquetes preexistentes en su sistema. En este método, se utiliza un contenedor Docker que contiene TensorFlow y todas sus dependencias. Este método es ideal para incorporar TensorFlow en una arquitectura de aplicación más grande que ya utiliza Docker. Sin embargo, el tamaño de la imagen de Docker será bastante grande.
En este tutorial, instalará TensorFlow en un entorno virtual de Python con virtualenv
. Este enfoque aísla la instalación de TensorFlow y permite que todo funcione rápidamente. Una vez que complete la instalación, validará su instalación ejecutando un programa breve de TensorFlow y luego usará TensorFlow para realizar el reconocimiento de imágenes.
Prerrequisitos
Antes de comenzar este tutorial, necesitarás lo siguiente:
-
Un servidor Ubuntu 16.04 con al menos 1 GB de RAM configurado siguiendo la guía de configuración inicial del servidor Ubuntu 16.04 , incluido un usuario sudo que no sea root y un firewall. Necesitará al menos 1 GB de RAM para realizar correctamente el último ejemplo de este tutorial.
-
Python 3.3 o superior
virtualenv
instalado. Siga Cómo instalar Python 3 en Ubuntu 16.04 para configurar Python yvirtualenv
. -
Git instalado, lo cual puedes hacer siguiendo Cómo instalar Git en Ubuntu 16.04 . Lo usarás para descargar un repositorio de ejemplos.
Paso 1: Instalación de TensorFlow
En este paso vamos a crear un entorno virtual e instalar TensorFlow.
Primero, crea un directorio de proyecto llamado tf-demo
:
- mkdir ~/tf-demo
Navegue hasta el directorio recién creado tf-demo
:
- cd ~/tf-demo
A continuación, cree un nuevo entorno virtual llamado tensorflow-dev
. Ejecute el siguiente comando para crear el entorno:
- python3 -m venv tensorflow-dev
Esto crea un nuevo tensorflow-dev
directorio que contendrá todos los paquetes que instales mientras este entorno esté activado. También incluye pip
una versión independiente de Python.
Ahora activa tu entorno virtual:
- source tensorflow-dev/bin/activate
Una vez activado verás algo similar a esto en tu terminal:
(tensorflow-dev)username@hostname:~/tf-demo $
Ahora puedes instalar TensorFlow en tu entorno virtual.
Ejecute el siguiente comando para instalar y actualizar a la versión más nueva de TensorFlow disponible en PyPi :
- pip3 install --upgrade tensorflow
TensorFlow instalará:
OutputCollecting tensorflow Downloading tensorflow-1.4.0-cp36-cp36m-macosx_10_11_x86_64.whl (39.3MB) 100% |████████████████████████████████| 39.3MB 35kB/s...Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30.0
Si desea desactivar su entorno virtual en cualquier momento, el comando es:
- deactivate
Para reactivar el entorno más tarde, navegue hasta el directorio de su proyecto y ejecute .source tensorflow-dev/bin/activate
Ahora que ha instalado TensorFlow, asegurémonos de que la instalación de TensorFlow funcione.
Paso 2: Validación de la instalación
Para validar la instalación de TensorFlow, vamos a ejecutar un programa simple en TensorFlow como usuario no root. Usaremos el ejemplo canónico para principiantes de “¡Hola, mundo!” como una forma de validación. En lugar de crear un archivo Python, crearemos este programa usando la consola interactiva de Python .
Para escribir el programa, inicie su intérprete de Python:
- python
Verá aparecer el siguiente mensaje en su terminal
Este es el mensaje para el intérprete de Python e indica que está listo para que usted comience a ingresar algunas declaraciones de Python.
Primero, escriba esta línea para importar el paquete TensorFlow y ponerlo a disposición como variable local tf
. Presione ENTER
después de escribir la línea de código:
- import tensorflow as tf
A continuación, agregue esta línea de código para configurar el mensaje “¡Hola, mundo!”:
- hello = tf.constant("Hello, world!")
Luego crea una nueva sesión de TensorFlow y asígnala a la variable sess
:
- sess = tf.Session()
Nota : Dependiendo de su entorno, es posible que vea este resultado:
Output2017-06-18 16:22:45.956946: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.2017-06-18 16:22:45.957158: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.2017-06-18 16:22:45.957282: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.2017-06-18 16:22:45.957404: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.2017-06-18 16:22:45.957527: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
Esto le indica que tiene un conjunto de instrucciones que tiene el potencial de optimizarse para un mejor rendimiento con TensorFlow. Si ve esto, puede ignorarlo y continuar.
Por último, ingrese esta línea de código para imprimir el resultado de ejecutar la hello
sesión de TensorFlow que ha construido en sus líneas de código anteriores:
- print(sess.run(hello))
Verás este resultado en tu consola:
OutputHello, world!
Esto indica que todo está funcionando y que puedes comenzar a usar TensorFlow para hacer algo más interesante.
Salga de la consola interactiva de Python presionando CTRL+D
.
Ahora usemos la API de reconocimiento de imágenes de TensorFlow para familiarizarnos más con TensorFlow.
Paso 3: Uso de TensorFlow para el reconocimiento de imágenes
Ahora que TensorFlow está instalado y lo ha validado ejecutando un programa simple, veamos las capacidades de reconocimiento de imágenes de TensorFlow.
Para clasificar una imagen, es necesario entrenar un modelo. Luego, es necesario escribir un código para utilizar el modelo. Para obtener más información sobre estos conceptos, puede consultar Introducción al aprendizaje automático .
TensorFlow proporciona un repositorio de modelos y ejemplos , incluido código y un modelo entrenado para clasificar imágenes.
Utilice Git para clonar el repositorio de modelos de TensorFlow desde GitHub en el directorio de su proyecto:
- git clone https://github.com/tensorflow/models.git
Verá el siguiente resultado cuando Git extraiga el repositorio en una nueva carpeta llamada models
:
OutputCloning into 'models'...remote: Counting objects: 8785, done.remote: Total 8785 (delta 0), reused 0 (delta 0), pack-reused 8785Receiving objects: 100% (8785/8785), 203.16 MiB | 24.16 MiB/s, done.Resolving deltas: 100% (4942/4942), done.Checking connectivity... done.
Cambiar al models/tutorials/image/imagenet
directorio:
- cd models/tutorials/image/imagenet
Este directorio contiene el classify_image.py
archivo que utiliza TensorFlow para reconocer imágenes. Este programa descarga un modelo entrenado en tensorflow.org
su primera ejecución. Para descargar este modelo, es necesario tener 200 MB de espacio libre disponible en el disco.
En este ejemplo, clasificaremos una imagen proporcionada previamente de un Panda . Ejecute este comando para ejecutar el programa clasificador de imágenes:
- python classify_image.py
Verás un resultado similar a este:
Outputgiant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89107)indri, indris, Indri indri, Indri brevicaudatus (score = 0.00779)lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00296)custard apple (score = 0.00147)earthstar (score = 0.00117)
Ha clasificado su primera imagen utilizando las capacidades de reconocimiento de imágenes de TensorFlow.
Si desea utilizar otra imagen, puede hacerlo agregando el -- image_file
argumento a su python3 classify_image.py
comando. Para el argumento, deberá pasar la ruta absoluta del archivo de imagen.
Conclusión
Ha instalado TensorFlow en un entorno virtual de Python y ha validado que TensorFlow funciona ejecutando un par de ejemplos. Ahora posee herramientas que le permiten explorar temas adicionales, incluidas las redes neuronales convolucionales y las incrustaciones de palabras .
La guía del programador de TensorFlow es un gran recurso y referencia para el desarrollo de TensorFlow. También puedes explorar Kaggle , un entorno competitivo para la aplicación práctica de conceptos de aprendizaje automático que te enfrenta a otros entusiastas del aprendizaje automático, la ciencia de datos y las estadísticas. Tienen una excelente wiki donde puedes ver y compartir soluciones, algunas de las cuales están a la vanguardia de las técnicas de aprendizaje automático y estadístico.
Deja una respuesta