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
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.
Una vez instalado se puede comprobar que funciona en una ventana del sistema. Para abrirla, en la barra de búsqueda se escribe ‘cmd‘.
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.
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:
Al aceptar, se instalan varios paquetes y si todo es correcto se verá una pantalla como:
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.
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.
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
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.
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.
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‘.
Se pulsa en la opción ‘Abrir‘ y aparece una ventana como:
Aquí se pulsa el botón Variables de entorno… y se accede a dichas variables en otra ventana:
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
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.
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:
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.
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:
La primera se descarga del enlace:
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:
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:
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:
El siguiente paso es instalar la librería CuDNN para Windows, que se descarga del siguiente enlace:
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
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:
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])))"
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.
Deja una respuesta