Configuración del entorno de Keras y TensorFlow

La Máquina Oráculo

David Baños Abril – 4 de marzo de 2022

Artículo relacionado

Serie relacionada

Taller

- Herramientas

Vamos a presentaros muy brevemente las herramientas que utilizaremos para la puesta en práctica de los algoritmos de Deep Learning.

TensorFlow

TensorFlow es una biblioteca de Python creada por Google. Ha llegado ha convertirse en un pilar fundamental para el desarrollo de algoritmos de Machine Learning. TensorFlow nos permite operar con vectores, indispensables en el Aprendizaje Profundo.

Keras

Keras es otra biblioteca de Python que se ha adquirido gran relevancia al raíz de su integración con TensorFlow. Permite operaciones de más alto nivel que este último. Como resultado, programar una red neuronal es cuestión de pocos minutos. 

Jupyter Notebook

Jupyter Notebook o cuadernos de Jupyter son interfaces interactivas que combinan código con anotaciones de texto e imágenes, todo ello desde la ventana del navegador. El resultado es una suerte de cuaderno extraordinariamente legible, ideal para trabajar en equipo en proyectos complejos.

Colab

Entrenar una red neuronal requiere de gran cantidad de recursos computacionales ¿Crees que tu máquina no rendirá lo suficiente? Colab (Google Colaboratory) permite solucionar esto, ofreciéndonos la posibilidad de ejecutar nuestros algoritmos en la nube de Google. Colab opera con cuadernos de Jupyter almacenados en Google Drive.

[1] -Instalación local

Si queremos comenzar a construir nuestros propios algoritmos de Deep Learning debemos decidir si las ingentes necesidades de cómputo de nuestras redes provendrán de nuestra máquina o de algún servidor externo. Si uno cuenta con un buen hardware (específicamente una tarjeta gráfica NVIDIA de calidad media-alta), podría ser interesante depender de nuestros propios recursos. Si no es el caso y simplemente queremos evitar detenernos en los detalles de hardware, un servidor externo es una opción legítima. Puedes saltarte todo este apartado y pasar directamente a la sección sobre Colab.

Instalar TensorFlow

Para instalar TensorFlow recurriremos al famoso pip de Python, un sistema de gestión de paquetes con el que muchos ya os encontraréis familiarizados si tenéis cierta carrera con este lenguaje de programación. La instalación de Python para Windows ya incluye el pip pero sería conveniente revisar su versión con el comando python3 -m pip –version en la consola de Windows o cmd. En nuestro caso, la versión es Python 3.9, una versión compatible con GPU, algo importante como veremos luego.

Instalar Keras

Comprueba si Keras está ya instalado con el comando python3 -m pip list que enumera todos los paquetes presentes en tu entorno. Si no aparece listado Keras, entonces completa la instalación con python3 -m pip install keras.

Instalar Jupyter Notebook en local

Te mostraremos ahora cómo montar tu entorno en Jupyter Notebook en tu ordenador. Su instalación es realmente sencilla.

Abrir la consola del sistema o cmd y escribir el comando python3 – m pip install jupyter
Tras unos segundos debería terminar el proceso. Para arrancar jupyter notebook simplemente ejecuta el comando jupyter notebook (si tienes instalado JupyterLab) o bien python -m notebook. Como resultado aparecerán una serie de URLs que deberás abrir en cualquier navegador. Esta última operación se exige siempre que quiera acceder a su Jupyter Notebook local. Además es necesario mantener la consola abierta siempre que trabajes en local.
import tensorflow as tf
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Dense, Flatten

Si abre cualquiera de esas direcciones debería aparecer en el Jupyter de nuestro servidor local, tal y como se muestra en la imagen dela izquierda.

Desde aquí tenemos acceso a las carpetas de nuestro ordenador. A continuación solo tendremos que elegir una ubicación para nuestros cuadernos. Una vez elegida, seleccionamos un nuevo notebook en Python 3 (ipykernel), Con esto ya tendríamos nuestro primer cuaderno de Jupyter en local. Podremos comprobar que los archivos de Jupyter Notebook tienen una extensión .ipynb.

Configuración del entorno de Keras y TensorFlow

David Baños Abril – 4 de marzo de 2022

Herramientas

Vamos a presentaros muy brevemente las herramientas que utilizaremos para la puesta en práctica de los algoritmos de Deep Learning.

TensorFlow

TensorFlow es una biblioteca de Python creada por Google. Ha llegado ha convertirse en un pilar fundamental para el desarrollo de algoritmos de Machine Learning. TensorFlow nos permite operar con vectores, indispensables en el Aprendizaje Profundo.

Keras

Keras es otra biblioteca de Python que se ha adquirido gran relevancia al raíz de su integración con TensorFlow. Permite operaciones de más alto nivel que este último. Como resultado, programar una red neuronal es cuestión de pocos minutos. 

Jupyter Notebook

Jupyter Notebook o cuadernos de Jupyter son interfaces interactivas que combinan código con anotaciones de texto e imágenes, todo ello desde la ventana del navegador. El resultado es una suerte de cuaderno extraordinariamente legible, ideal para trabajar en equipo en proyectos complejos.

Colab

Entrenar una red neuronal requiere de gran cantidad de recursos computacionales ¿Crees que tu máquina no rendirá lo suficiente? Colab (Google Colaboratory) permite solucionar esto, ofreciéndonos la posibilidad de ejecutar nuestros algoritmos en la nube de Google. Colab opera con cuadernos de Jupyter almacenados en Google Drive.

Opción 1: Instalación local

Si queremos comenzar a construir nuestros propios algoritmos de Deep Learning debemos decidir si las ingentes necesidades de cómputo de nuestras redes provendrán de nuestra máquina o de algún servidor externo. Si uno cuenta con un buen hardware (específicamente una tarjeta gráfica NVIDIA de calidad media-alta), podría ser interesante depender de nuestros propios recursos.

Si no es el caso y simplemente queremos evitar detenernos en los detalles de hardware, un servidor externo es una opción legítima. Puedes saltarte todo este apartado y pasar directamente a la sección sobre Colab.

Instalar TensorFlow

Para instalar TensorFlow recurriremos al famoso pip de Python, un sistema de gestión de paquetes con el que muchos ya os encontraréis familiarizados si tenéis cierta carrera con este lenguaje de programación. La instalación de Python para Windows ya incluye el pip pero sería conveniente revisar su versión con el comando python3 -m pip –version en la consola de Windows o cmd. En nuestro caso, la versión es Python 3.9, una versión compatible con GPU, algo importante como veremos luego.
Para instalar TensorFlow tan solo ejecuta el comando python3 – m pip install tensorflow. Si deseáis conocer vuestra version de TensorFlow, recurrid al comando python3 – m pip show tensorflow. Nosotros trabajaremos con la 2.8.

Instalar Keras

Comprueba si Keras está ya instalado con el comando python3 -m pip list que enumera todos los paquetes presentes en tu entorno. Si no aparece listado Keras, entonces completa la instalación con python3 -m pip install keras.

Jupyter Notebook en local

Te mostraremos ahora cómo montar tu entorno en Jupyter Notebook en tu ordenador. Su instalación es realmente sencilla.
Abrir la consola del sistema o cmd y escribir el comando python3 – m pip install jupyter
Tras unos segundos debería terminar el proceso. Para arrancar jupyter notebook simplemente ejecuta el comando jupyter notebook (si tienes instalado JupyterLab) o bien python -m notebook. Como resultado aparecerán una serie de URLs que deberás abrir en cualquier navegador. Esta última operación se exige siempre que quiera acceder a su Jupyter Notebook local. Además es necesario mantener la consola abierta siempre que trabajes en local.
Si abre cualquiera de esas direcciones debería aparecer en el Jupyter de nuestro servidor local, tal y como se muestra en la imagen de abajo.
Desde aquí tenemos acceso a las carpetas de nuestro ordenador. A continuación solo tendremos que elegir una ubicación para nuestros cuadernos. Una vez elegida, seleccionamos un nuevo notebook en Python 3 (ipykernel), tal y como se muestra en la imagen.
Con esto ya tendríamos nuestro primer cuaderno de Jupyter en local. Podremos comprobar que los archivos de Jupyter Notebook tienen una extensión .ipynb.

TensorFlow con GPU NVIDIA

Este paso es completamente opcional, pues por defecto nuestros algoritmos se ejecutarán en la CPU. Pero si buscamos optimizar y agilizar el aprendizaje de nuestros proyectos de Aprendizaje Profundo, una opción muy interesante sería recurrir a la GPU de nuestra tarjeta gráfica. Recordemos que las GPUs están mucho mejor preparadas que las CPUs para el procesamiento paralelo que caracteriza a los algoritmos de Deep Learning.

Para permitir que TensorFlow se comunique con nuestra GPU, haremos uso de una API conocida como CUDA, desarrollada por el fabricante de tarjetas gráficas NVIDIA. Será necesario que tu PC cuente con una tarjeta gráfica de esta misma compañía, así como estar registrado en la web de NVIDIA.

Para realizar esta configuración se requieren dos herramientas: CUDA Toolkit y cuDNN.

Gráfica y drivers

Nuestro primer paso será conocer las especificaciones técnicas de nuestra tarjeta gráfica. Ve a Administrador de dispositivos » Adaptadores de pantalla para conocer el modelo con el que cuenta tu equipo. La versión de las herramientas que debemos descargar dependerá de la versión de driver que tenga nuestra gráfica. Por ello es recomendable asegurarnos que contamos con últimos drivers. Descargarlos es una operación sencilla; tan solo visita el portal oficial de NVIDIA para la descarga de drivers. Aquí deberás buscar el driver adecuado para tu modelo. En la imagen de abajo, el modelo de tarjeta gráfica es GeForce GTX 1650.
Si pulsamos en SEARCH, se nos ofrecerá un controlador para nuestra gráfica. Es muy importante para los pasos siguiente la versión del driver, que en nuestro ejemplo es 511.79.

Instalar CUDA Toolkit

En este portal aparece toda la documentación concerniente a CUDA Toolkit, muy recomendable de ojear antes de hacer ninguna descarga. La instalación de CUDA Toolkit es accesible en este enlace. La versión CUDA compatible dependerá de vuestra versión de driver. En esta tabla podréis ver la correspondencia.

Tan solo descarga y ejecuta el instalador. Recordad la versión que estéis instalando para continuar en los pasos siguientes. Nosotros instalaremos la última versión, la 11.6. Lo normal es que el directorio de instalación sea

C:\Archivos de programa\NVIDIA GPU Computing Toolkit\CUDA

Instalar cuDNN

cuDNN es la biblioteca especializada en el cálculo vectorial, indispensable en Deep Learning. De nuevo, nos limitaremos ha seguir las instrucciones que nos ofrece el portal oficial de NVIDIA.

Encontraremos la  descarga de cuDNN aquí. Hay varias versiones, dependiendo de la versión de CUDA que hayáis instalado. En esta imagen podréis ver la compatibilidad entre versiones de CUDA, cuDNN y tensorflow-gpu

En nuestro caso, la dirección de instalación ha sido 

C:\Archivos de Programa\NVIDIA\CUDNN

Integrar CUDA y cuDNN

Debemos de copiar y pegar tres archivos desde el directorio de cuDNN a CUDA. Las siguientes direcciones no tienen porqué coincidir, pues dependerá del directorio de instalación.

    De C:\Archivos de programa\NVIDIA\CUDNN\v8.3\bin, copiar cudnn*.dll (con la versión que sea) y pegar en C:\Archivos de programa\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin

    De C:\Archivos de programa\NVIDIA\CUDNN\v8.3\include, copiar cudnn.h en C:\Archivos de programa\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include

    De C:\Archivos de programa\NVIDIA\CUDNN\v8.3\lib\x64, copiar cudnn.lib y pegar en C:\Archivos de programa\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib\x64

    Variable PATH

    El último paso será incluir los directorios de instalación en la variable de entorno PATH, de manera que Windows localice los ejecutables necesarios. En Windows 11 deberá seguirse la ruta Sistema » Configuración avanzada del sistema » Opciones avanzadas » Variables de entorno. Una vez dentro, marcamos la opción path y pulsamos en Editar.
    Una vez dentro añadimos las rutas de instalación de CUDA y cuDNN pulsando cada vez en Nuevo.

    C:\Archivos de programa\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin

    C:\Archivos de programa\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include

    C:\Archivos de programa\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib\x64

    Comprobación

    Todos los pasos ya han sido ejecutados y tan solo queda volver a nuestro Jupyter Notebook en local y comprobar que todo funcione. Para confirmar que TensorFlow está realmente usando la GPU podemos recurrir a la función config.list_physical_devices(‘GPU’) que devuelve una lista con los dispositivos GPUs detectados en el equipo. Tal y como se muestra en la imagen inferior

    Podéis comprobar como en este ejemplo también se ha añadido la función os.add_dll_directory() con la ruta de instalación de CUDA, antes de importar TensorFlow (solo para versiones de Python 3.8 o superiores). Puede llegar a ser útil si el programa continua siendo incapaz de localizar los archivos CUDA.

    Instalar tensorflow-gpu

    Este paso solo es necesario en caso de contar con la versión de TensorFlow 1.15 o anterior. Si es el caso, es necesario descargar el paquete de TensorFlow para GPU. Tan solo ejecuta el comando python3 – m pip install tensorflow-gpu en la consola de Windows.

    Opción 2: Colab

    Si prefieres ponerte a programar cuanto antes sin preocuparte por los entresijos de la configuración, Colab de Google es una maravillosa opción. Colab permite ejecutar algoritmos de Machine Learning en un servidor externo y guardar los cuadernos en la nube, por lo que no tendrás que preocuparte de los recursos de tu equipo. El único requisito a cumplir es contar con un correo gmail de Google.

    Para crear su notebook tan solo es necesario iniciar sesión en Google Drive y desde allí, en el botón  Nuevo conectar con Google Colaboratory. Si es la primera vez que accedes lo más probable es que no aparezca esta aplicación. Tan solo búscala y vincúlala haciendo click en Conectar más aplicaciones

    Una vez instalada podremos acceder a Google Colaboratory, que nos ofrecerá de forma automática nuestro primer cuaderno como se muestra en la imagen inferior.

    GPU en Colab

    Como ya comentamos en la sección de instalación en local, las GPUs son dispositivos de hardware mucho más eficientes y rápidos a la hora de procesar el aprendizaje de un algoritmo de IA. Podemos hacer que nuestros trabajos se ejecuten en una GPU externa ofrecida por Colab. Para ello tan solo ve a Entorno de Ejecución » Cambiar tipo de entorno de ejecución y selecciona GPU.
    Comprueba que efectivamente la ejecución se realiza sobre GPU con el script config.list_physical_devices(‘GPU’). Si todo va bien, debería aparecer algo parecido a [PhysicalDevice(name=’/physical_device:GPU:0′, device_type=’GPU’)].

    Colab también nos da la opción de ejecutar con TPU. Estos dispositivos están específicamente diseñados para operaciones con tensores en TensorFlow, y la velocidad a la que realizan los cálculos propios del entrenamiento de una red neuronal puede ser varias veces superior al de una GPU.

    Conclusión

    Ya sea en local o en la nube de Google deberías tener listo vuestro entorno de desarrollo para comenzar a trabajar con Deep Learning. En el próximos artículo veremos por encima como opera TensorFlow y Keras programando nuestra primera red neuronal.

    Lecturas recomendadas

    – Torres, J. (2020). Python Deep Learning. Introducción práctica con Keras y TensorFlow 2.

    – Chollet, F. (20178). Deep Learning with Python.

    Artículo relacionado

    GPU: el cerebro de la IA

    La GPU es el sustrato físico que permite la ejecución de algoritmos de Inteligencia Artificial y del Deep Learning más concretamente.

    Series sobre
    Deep Learning

    La Máquina Oráculo utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

    ACEPTAR
    Aviso de cookies