Configuración del entorno de PyTorch

David Baños Abril – 4 de marzo de 2022

En estos talleres hemos presentado con anterioridad la biblioteca TensorFlow. A pesar de haber salido un año después, la biblioteca de PyTorch ha conseguido labrarse un hueco entre las herramientas especializadas en modelos de Deep Learning, y en algunos ámbitos, como es el de la investigación, ha logrado imponerse por encima de su rival de Google.

Este artículo lo dedicaremos a configurar nuestro entrono de desarrollo en Windows para comenzar a trabajar con PyTorch.

Herramientas

Anaconda

Anaconda es una plataforma desde la que gestionaremos nuestros programas y su ejecución. Su instalación incluye Anaconda Navigator, desde el que podremos gestionar nuestras aplicaciones, así como Conda, el entorno de desarrollo definitivo para trabajar con Python.

PyTorch

Creada por los ingenieros del laboratorio de IA de Facebook, PyTorch es el protagonista de esta serie de tutoriales. Siendo algo más complejo que TensorFlow, es también un lenguaje mucho más flexible, permitiendo un mayor control de los modelos y su entrenamiento.

Jupyter Notebook

Los cuadernos de Jupyter son un entorno de desarrollo extremadamente polifacético, con el que no solo podremos interactuar de formas mucho más versátiles con nuestro código, sino que también tendremos la opción de incluir texto y otros archivos multimedia.

Colab

Tendremos la opción de construir nuestros modelos de Deep Learning sin preocuparnos de la configuración de nuestro PC gracias a Google Colaboratory. Los cuadernos de Colab nos permitiran programar directamente desde el navegador.

¿En local o en la nube?

La primera de las decisiones que debemos tomar concierne trabajar en local o apoyarnos en un navegador e interactuar con un dispositivo externo. Dependiendo de los recursos que pueda ofrecer nuestra computadora, podremos escoger si configurar nuestro PC para ejecutar las ingentes cantidades de cálculos que requiere el entrenamiento de una red neuronal, o si por el contrario decidimos hacer uso de recursos externos brindados por una herramienta como es Google Colab.

Si quieres pasar directo al grano o consideras que tu equipo no es excesivamente potente, pasa directamente a la Opción 2: Colab.

Opción 1: Instalación local

Esta sección estará dedicada a la primera de las opciones. A continuación os mostraremos los pasos para instalar PyTorch en vuestro equipo local. Nuestra referencia será la propia web oficial de PyTorch, donde se ofrecen las instrucciones paso a paso para la instalación de PyTorch en local. 

La instalación la realizaremos a través del gestor de paquetes Anaconda, una opción muy útil que simplificará nuestro trabajo.

Paso 1 - Instalar Anaconda y Python

Para comenzar la instalación de Anaconda tan solo debemos realizar la descarga desde el sitio oficial y seguir las instrucciones indicadas como en cualquier instalador.

Una vez instalado, deberíamos poder encontrar en nuestro PC Anaconda Navigator. Si lo abrimos debería aparecer algo parecido a la imagen de abajo:

Como hemos mencionado arriba, la instalación de Anaconda incluye también Conda. Al igual que con el resto de aplicaciones con las que trabajaremos, es extremadamente recomendable averiguar que versión de Conda estamos utilizando. Para ello, será necesario abrir la consola que se nos ofrece en el Anaconda Navigator: CMD.exe Prompt. Allí ejecutaremos el comando conda --version

Como vemos, en nuestro caso se trata de la versión 4.12.

Podemos hacer lo mismo para comprobar la versión de Python con el comando python --version. Nosotros utilizaremos Python 3.9.

¿CPU o GPU?

Toca comenzar con la instalación de PyTorch, pero antes debemos tomar una decisión. Como comentamos en un artículo de este mismo portal, los dispositivos GPU, como son las tarjetas gráficas, están mucho mejor preparadas para el cálculo en paralelo necesario para el entrenamiento de redes neuronales.

Así que tendremos la opción de configurar nuestra gráfica de forma que podamos correr en ella nuestros algoritmos de una forma mucho más rápida y optimizada que en el caso de recurrir a la CPU. La opción es únicamente viable si cuenta con una tarjeta gráfica NVIDIA relativamente moderna. Puedes ir a Administrador de dispositivos » Adaptadores de pantalla para conocer el modelo con el que cuenta tu equipo.

Si no es el caso, o simplemente es una posibilidad que no quieres contemplar, pasa directamente al paso 2(B).

Paso 2(A) - PyTorch con CUDA

La herramienta que nos permite interactuar con nuestra tarjeta gráfica es CUDA en su última versión, la 11. Instalaremos PyTorch junto a CUDA desde la consola de Anaconda Navigator.

Tal y como nos muestra la web oficial de Python, tan solo es necesario ejecutar el siguiente comando

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

La instalación tardará unos minutos. Durante el proceso podremos identificar las versiones que estemos utilizado. En nuestro caso: CUDA 11.3 y PyTorch 1.11.

Para comprobar que la herramienta de CUDA ha sido instalada con éxito ejecuta el comando python para luego ejecutar el script:
import torch
torch.cuda.is_available()
Si la respuesta es True significa que todo habrá ido perfecto. Puedes asegurarte qué dispositivo estás usando con el script:
torch.cuda.get_device_name(0)

Paso 2(B) - PyTorch en CPU

Si nuestra intención es ejecutar los algoritmos en CPU, el comando a utilizar en la consola de Anaconda será:

conda install pytorch torchvision torchaudio cpuonly -c pytorch

Una vez hayas instalado PyTorch y te surge la duda de sí tu PC soporta la opción para GPUs, puede ejecutar el comando python y después el script:

import torch
torch.cuda.is_available()

Si devuelve True sabrás que tu equipo es capaz de soportar CUDA y ejecutar localmente en GPU.

Paso 3 - Jupyter Notebook

Los cuadernos de Jupyter serán el framework donde construiremos e interactuaremos con nuestro código.

Para abrir uno de esos cuadernos tan solo debemos buscador en el navegador de Anaconda el apartado Notebook. Si pulsamos debería aparecer una ventana como la que mostramos abajo:

Desde aquí podemos crear nuestro cuaderno de Jupyter navegando por nuestras bibliotecas y pulsando en New » Python 3 (ipykernel) en la parte superior derecha.

Para comprobar que todo marcha correctamente, ejecuta el mismo script mostrado arriba, tal y como vemos en la imagen:

import torch
torch.cuda.is_available()

Ya tendríamos todo listo para ponernos a programar en PyTorch.

Opción 2: Colab

Con el único requisito de contar con un correo gmail de Google y acceso a Internet podemos comenzar a programar en PyTorch sin necesidad de preocuparnos por las características de nuestro PC.

Para crear tu cuaderno necesitamos iniciar sesión en Google Drive y desde allí, en el botón  Nuevo, conectar con Google Colaboratory. Si no te aparece la opción de Colab simplemente Tan solo búscala y vincúlala 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

Las GPUs son dispositivos de hardware mucho más eficientes y rápidos a la hora de entrenar modelos de Deep Learning. 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 la ejecución en GPU funciona correctamente con el script

config.list_physical_devices('GPU')

El resultado debería ser algo parecido a esto:

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

TPU

Colab también nos da la opción de ejecutar con TPU. Estos dispositivos están específicamente diseñados para operaciones con tensores, 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 está todo listo para empezar a programar. Aun así, será recomendable conocer como trabaja PyTorch. El próximo artículo lo dedicaremos a introducir las estructuras de datos con las que opera PyTorch.

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