marzo 6, 2022

VARIOS – Instalar Tensorflow con Python

Written by

NOTA: AÑADIDO UN SEGUNDO TIPO DE INSTALACIÓN CON NVIDIA

Dentro de los proyectos que estamos trabajando este año, en los que nos introducimos en la visión por ordenador, uno de los temas que necesitamos es el uso de las librerías TensorFlow, creadas por Google. Estas librerías están disponibles para varios entornos y uno de ellos es Python, lenguaje con el que trabajamos habitualmente, así que lo que vamos a explicar es la instalación conjunta de ambos sistemas.

Estas tecnologías están todavía en desarrollo, por lo que todavía no están disponibles en una instalación ‘fina’ y es necesario dedicar bastante tiempo a tener el sistema a punto, y atender a la siguiente:

NOTA: la explicación que viene a continuación corresponde a la instalación en unas condiciones de fecha y sistema informático muy determinadas. Es muy posible que se pueda conseguir el objetivo con otras versiones y ordenadores, pero no las hemos probado. Éstas son:

  • Sistema Windows 10 de 64 bits.
  • Sin tarjeta gráfica Nvidia.

Para conseguir la instalación hemos seguido las indicaciones que da Nicholas Renotte en el vídeo de su canal: https://www.youtube.com/watch?v=dZh_ps8gKgs al que agadecemos desde estas líneas. Sin embargo, algunas instrucciones que da en su vídeo están algo anticuadas y no funcionan totalmente. Hemos seguido también el tutorial que aparece en la página de TensorFlow https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/install.html , que es el que finalmente nos ha funcionado, aunque con algunas puntualizaciones, que es lo que vamos a detallar aquí.

1 – LIMPIAR EL SISTEMA

Puede que no sea necesario pero hemos desinstalado Python del ordenador, por si causa interferencias con la nueva instalación. Si existe en el ordenador algún otro producto que vamos a usar, como Visual Studio, lo hemos desinstalado también. Tras desinstalarlo hemos editado la variable de sistema PATH para borrar referencias a Python que puedan quedar.

2 – INSTALAR ANACONDA (PYTHON)

Tal como dice el manual, Anaconda no es necesario pero lo recomienda. Anaconda es un entorno de programación que incluye Python. Hemos instalado la versión de 64 bits 3-2021.05, que no es la última, e incluye Python 3.8, que tampoco es la última versión. El enlace es: https://repo.anaconda.com/archive/Anaconda3-2021.05-Windows-x86_64.exe

Programa de instalación de Anaconda

En la instalación hemos marcado la opción ‘Add Anaconda3 to my PATH envionment variable’ a pesar de no ser la opción recomendada. También hemos marcado la opción de instalación para todos los usuarios. Para hacerlo hay que ser usuario administrador del sistema.

Instalando Anaconda

Una vez instalado se puede comprobar que funciona en una ventana del sistema. Para abrirla, en la barra de búsqueda se escribe ‘cmd‘.

Abriendo una ventana de comandos

Luego se pulsa sobre la opción Ejecutar como administrador, y se abre la ventana. Si se escibe python se muestra el mensaje de Anaconda y Python con la versión instalados.

Anaconda y Python instalados

Pulsar Ctrl-Z para salir del intérpete de Python.

3 – CREAR ENTORNO VIRTUAL

En la ventana de comandos, introducir la instrucción:

conda create -n tensorflow pip python=3.8

Aparecen unos mensajes sobre paquetes que tiene que instalar, y hay que aceptar:

Creación del entorno virtual

Al aceptar, se instalan varios paquetes y si todo es correcto se verá una pantalla como:

Entorno virtual creado

Esto crea un entorno virtual dentro de Anaconda para las operaciones que se hacen después con Tensorflow. Si se introduce ahora el siguiente comando para activarlo:

conda activate tensorflow

Se verá en la línea de entrada el nombre del entorno entre paréntesis.

Entorno virtual activado

4 – INSTALAR TENSORFLOW

Aunque parece que después se actualiza, ahora el paso recomendado es instalar el paquete TensorFlow 2.5.0, con el siguiente comando:

pip install --ignore-installed --upgrade tensorflow==2.5.0

Si no hay errores en la instalación, se puede verificar con el siguiente comando:

python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

Aparece una lista de errores debido a que no hay tarjeta NVidia, pero en general el proceso se termina correctamente.

Prueba básica de TensorFlow

5 – INSTALAR LIBRERÍAS GRÁFICAS DE NVIDIA

Ahora sería el momento de instalar las librerías de NVidia, CUDA y CuDNN, para acelerar los procesos de cálculo que conlleva la visión por ordenador, pero como no tenemos tarjetas de este tipo, no hacemos este paso.

6 – INSTALAR GIT

No es estrictamente necesario pero facilita algunos comandos. Es una utilidad para descargar paquetes almacenados en la red Github. El enlace para descargar es https://git-scm.com/download/win

Programa de instalación de GIT

Se inicia el programa de instalación y se escogen todas las opciones por defecto salvo la del terminal de uso, que hemos preferido usar el de Windows, aunque esta selección no afecta a su funcionalidad.

Escogemos el intérprete de comandos de Windows

7 – INSTALAR LOS MODELOS DE TENSORFLOW

Desde la ventana de comandos, crear una carpeta en alguna parte del ordenador. Nosotros hemos escogido una directamente desde la unidad C: llamada Paquetes. Dentro de ella, crear otra carpeta llamada TensorFlow.

mkdir Paquetes
cd Paquetes
mkdir TensorFlow
cd TensorFlow

Ahora, clonar los modelos de TensorFlow con el comando:

git clone https://github.com/tensorflow/models

Tras unos minutos, se ha descargado una carpeta models donde están los datos para la detección.

Modelos de TensorFlow clonados con GIT
Modelos de TensorFlow descargados

8 – INSTALAR PROTOC

Protoc es una librería para interpretar los datos generados por TensorFlow, que son llamados ‘buffer de protocolos’. Son necesarios para que funcione la detección de objetos. Aunque en el tutorial dice que se use la última versión, nosotros hemos encontrado otra recomendación anterior y hemos usado la 3.14, en este enlace: https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protoc-3.14.0-win64.zip

Se descarga el fichero y se descomprime el contenido en una carpeta protoc dentro de Paquetes. Esto se puede hacer copiando y pegando desde el explorador de Windows.

También hay que añadir la carpeta de protoc al PATH, de forma manual. Esto se hace desde la barra de búsqueda escribiendo ‘entorno‘.

Accediendo a las variables de entorno

Se pulsa en la opción ‘Abrir‘ y aparece una ventana como:

Cuadro de propiedades del sistema

Aquí se pulsa el botón Variables de entorno… y se accede a dichas variables en otra ventana:

Variables de entorno

En la parte de arriba, en la de variables del usuario, pulsar en la variable Path y el botón editar y se accede a otra ventana para editar:

Aquí se pulsa en el botón Nuevo y se añade la ruta a la carpeta de protoc. En nuestro caso es c:\Paquetes\protoc\bin

Nueva ruta en el PATH

Se acepta todo y se queda la nueva ruta grabada.

El siguiente paso es compilar la librería protoc, y para ello hay que cerrar la ventana de comandos y abrirla de nuevo, como se ha explicado antes, para que el cambio en el PATH funcione. Luego introducir los comandos:

cd \Paquetes\TensorFlow\models\research
protoc object_detection\protos\*.proto --python_out=.

Este comando aparentemente no produce ningún mensaje de salida y no tarda mucho en terminar.

Compilando protobuf

9 – INSTALAR VISUAL STUDIO

Las librerías de TensorFlow para la detección deben ser compiladas en el sistema y para ello es necesario tener las herramientas de Visual C++ disponibles, que están en Visual Studio. Tras probar con varias opciones, la que nos ha funcionado está en el enlace https://aka.ms/vs/17/release/vc_redist.x64.exe. Esta versión instala alrededor de 4 GB en el disco y tarda bastante en terminar el proceso.

10 – INSTALAR LA API COCO

En teoría el paquete pycocotools se debe instalar con la API del siguiente paso. Sin embargo recomienda instalarlo antes porque suele dar error en el proceso global. Para ello, introducir los comandos:

pip install cython
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

Este proceso tarda unos minutos porque se debe compilar el paquete con el Visual Studio del paso anterior.

11 – INSTALAR LA API DE DETECCIÓN DE OBJETOS

Finalmente llega el momento de instalar la API de detección, con los siguientes comandos:

copy object_detection\packages\tf2\setup.py
python -m pip install .

Este proceso es bastante largo pues instala un gran número de paquetes y las librerías de TensorFlow, que tienen que compilarse con el Visual Studio.

12 – PRUEBA

Finalmente, si se ha compilado e instalado toda la librería y no ha salido ningún mensaje de error, se puede hacer una prueba para verificar, con el comando siguiente:

python object_detection/builders/model_builder_tf2_test.py

Tras unos segundos, debería aparecer una pantalla con los mensajes siguientes:

Prueba final de TensorFlow

Se puede ver que ha hecho 24 pruebas y el resultado es OK. Lo siguiente es probar algún ejemplo.

Instalar Tensorflow con Python y tarjeta gráfica Nvidia

Tras trabajar unos días con el sistema explicado arriba nos hemos hecho con un ordenador y una tarjeta gráfica Nvidia, así que hemos probado a instalar desde cero todo el sistema de nuevo, pero con otros parámetros, que se ponen a continuación:

  • Ordenador Core i5 – RAM 8 GB
  • Tarjeta gráfica Geforce GT730
  • Windows 11 Pro 64 bits

1 – INSTALAR PYTHON

En esta ocasión no hemos instalado Anaconda por simplificar, pero si se piensa trabajar con varios proyectos distintos sería interesante instalarlo o usar entornos virtuales.

Instalamos la versión 3.9 de Python (la versión más actual en este momento es la 3.10 pero no es compatible con la librería sentencepiece que se instala al final. Abrimos la página de Python y descargamos la versión correspondiente.

Repositorio de Python con versiones anteriores

Tras descargarla se instala con las opciones por defecto, y añadiendo la ruta en la variable PATH.

2 – INSTALAR TENSORFLOW

El segundo paso es instalar la librería TensorFlow, directamente con pip, introduciendo el comando:

pip install tensorflow

Aquí sí se puede instalar la versión más reciente de la librería, que en nuestro caso es la 2.8.0.

3 – INSTALAR LAS HERRAMIENTAS DE VISUAL STUDIO

Las herramientas de Visual Studio son necesarias para preparar las librerías asociadas a TensorFlow. El enlace para descargar es:

https://visualstudio.microsoft.com/visual-cpp-build-tools/

Se instala como en la primera parte del artículo.

4 – INSTALAR LAS LIBRERÍAS DE NVIDIA

Ahora sí se pueden instalar las librerías CUDA y CUDNN, de Nvidia. Seguimos los pasos indicados en el tutorial que aparece al principio de este artículo en su primera versión, que como resumen es:

Pasos para instalar las librerías de Nvidia

La primera se descarga del enlace:

https://developer.nvidia.com/cuda-11.2.2-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exenetwork

Selección de la versión de CUDA

Entramos en el enlace proporcionado y seleccionamos la versión de CUDA para nuestro sistema. No importa la versión de Windows 10 porque es compatible con W11. Aceptamos la carpeta para extraer los datos:

Configuración para la instalación de CUDA

Se hace una comprobación del sistema y se acepta la instalación:

Se selecciona la opción Express de instalación. Es suficiente para lo que necesitamos:

Si aparece un error de que no encuentra Visual Studio instalado no importa. Se marca la opción de continuar porque parece que no detecta bien que ya está instalado. Si aparece otro error de que no puede instalar porque hay un proceso de Visual Studio ejecutándose, aunque no sea cierto, hay que reiniciar el ordenador e intentarlo de nuevo:

Tras esto el instalador descarga e instala CUDA en el ordenador:

El siguiente paso es instalar CuDNN, que es parecido al anterior, obteniéndose del enlace:

https://developer.nvidia.com/rdp/cudnn-archive#a-collapse810-111

Aunque para descargar la librería hay que registrarse en el club de desarrollo de Nvidia:

Si no se tiene una cuenta hay que crearla y si se tiene se accede en el botón Login.

Es posible que se aplique una medida de seguridad de acceso en dos pasos. Se envía un correo con un enlace y hay que pulsarlo.

Finalmente se accede a la página de descarga de la librería:

Descargamos el primer fichero, CuDNN para CUDA 11.5 y se abre el instalador, que pregunta por la descompresión de los datos:

Configuración de la instalación de CuDNN

Se hace una comprobación del sistema y se acepta la instalación:

Tras el proceso de instalación, finalmente tenemos instalada la librería en el sistema:

CuDNN instalado en el sistema

El siguiente paso es instalar la librería CuDNN para Windows, que se descarga del siguiente enlace:

https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.1.0.77/11.2_20210127/cudnn-11.2-windows-x64-v8.1.0.77.zip

Es un fichero .zip que hay que descomprimir y copiar el contenido en la carpeta de instalación de las librerías Nvidia, que en nuestro caso es:

c:\Archivos de Programa\NVIDIA GPU Computing Toolkit\CUDA\v11.2

Carpeta de librería copiada en el ‘Toolkit’

Y por último hay que añadir unas rutas a la variable de entorno PATH. Se hace de la misma forma que se indica en la primera parte del artículo, y queda:

PATH con las rutas de CUDA

Tras la instalación podemos probar que funciona con el siguiente comando:

python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
Prueba de instalación de TensorFlow

Se puede ver que la tarjeta gráfica se ha detectado.

5 – INSTALAR PROTOC

La librería de protocol buffers se instalan como en la primera parte del artículo. Hemos probado con la última versión y nos funciona. El enlace para la descarga es:

https://github.com/google/protobuf/releases

Y de allí escogemos la última versión para Windows, la 3.19.4:

Hemos creado una carpeta en el disco C: llamada C:\Proyectos.

Se descarga el fichero y se descomprime el contenido en una carpeta protoc dentro de Proyectos. Esto se puede hacer copiando y pegando desde el explorador de Windows.

También hay que añadir la carpeta de protoc al PATH, de forma manual, tal como se ha hecho antes con el CUDA.

6 – INSTALAR GIT

Se hace como en la primera parte del artículo. El enlace para descargar es: https://git-scm.com/download/win

7 – INSTALAR LOS MODELOS DE TENSORFLOW

Creamos una carpeta en el disco C: y debajo de Proyectos, otra carpeta llamada TensorFlow.

Ahora, clonar los modelos de TensorFlow con el comando:

git clone https://github.com/tensorflow/models

Tras unos minutos, se ha descargado una carpeta models donde están los datos para la detección.

8 – INSTALAR LA API COCO

El paquete pycocotools se debe instalar como en la primera parte del artículo. Para ello, introducir los comandos:

pip install cython
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

9 – INSTALAR LA API DE DETECCIÓN DE OBJETOS

Finalmente llega el momento de instalar la API de detección, con los siguientes comandos:

copy object_detection\packages\tf2\setup.py
python -m pip install .

Este proceso es bastante largo pues instala un gran número de paquetes y las librerías de TensorFlow, que tienen que compilarse con el Visual Studio.

Category : VARIOS

Deja una respuesta

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

Proudly powered by WordPress and Sweet Tech Theme