Habilitación de PyTorch con DirectML en WSL 2
PyTorch con DirectML proporciona una manera fácil de usar para que los desarrolladores prueben los modelos de IA más recientes y mejores en su máquina Windows. Puede descargar PyTorch con DirectML instalando el paquete de PyPi torch-directml. Una vez configurado, puede empezar con nuestras muestras o usar el AI Toolkit para VS Code.
El paquete torch-directml en el Subsistema de Windows para Linux (WSL) 2 funciona a partir de Windows 11 (compilación 22000 o superior). Para comprobar el número de versión de compilación, ejecute winver
mediante el comando Run (tecla del logo de Windows + R).
Asegúrese de que tiene los controladores de GPU más recientes instalados. Seleccione Buscar actualizaciones en la sección Windows Update de la aplicación Configuración.
Para configurar el subsistema de Windows para Linux (WSL) 2, siga las instrucciones de la Instalación de WSL.
A continuación, instale el controlador de GUI de WSL siguiendo las instrucciones del archivo README.md
en el repositorio de GitHub microsoft/wslg.
Se recomienda configurar un entorno de Python virtual dentro de WSL 2. Existen muchas herramientas que puede usar para configurar un entorno de Python virtual; en este tema, usaremos la característica Miniconda de Anaconda. En el resto de esta configuración se da por supuesto que usa un entorno de Miniconda.
Instale Miniconda siguiendo la guía del instalador de Linux en el sitio de Anaconda o ejecutando los siguientes comandos en WSL 2.
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Una vez instalado Miniconda, cree un entorno de Python denominado pytdml y actívelo mediante los siguientes comandos:
conda create --name pytdml -y
conda activate pytdml
Nota
El paquete torch-directml admite hasta PyTorch 2.2.
Para empezar solo tiene que instalar la versión más reciente de torch-directml mediante la ejecución del siguiente comando:
pip install torch-directml
Una vez instalado el paquete torch-directml, puede comprobar que se ejecuta correctamente agregando dos tensores. En primer lugar, inicie una sesión interactiva de Python e importe Torch con las siguientes líneas:
import torch
import torch_directml
dml = torch_directml.device()
La versión actual de torch-directml se asigna al back-end de Torch "PrivateUse1". La API torch_directml.device() es un cómodo contenedor para enviar los tensores al dispositivo DirectML.
Con el dispositivo DirectML creado, ahora puede definir dos tensores simples; un tensor que contiene 1 y otro que contiene 2. Coloque los tensores en el dispositivo "dml".
tensor1 = torch.tensor([1]).to(dml) # Note that dml is a variable, not a string!
tensor2 = torch.tensor([2]).to(dml)
Agregue los tensores e imprima los resultados.
dml_algebra = tensor1 + tensor2
dml_algebra.item()
Debería ver que el número 3 es la salida, como en el ejemplo siguiente.
>>> import torch
>>> tensor1 = torch.tensor([1]).to(dml)
>>> tensor2 = torch.tensor([2]).to(dml)
>>> dml_algebra = tensor1 + tensor2
>>> dml_algebra.item()
3
Consulte nuestros ejemplos para ver más usos de PyTorch con DirectML. Si tiene problemas o tiene comentarios sobre el paquete PyTorch con DirectML, póngase en contacto con nuestro equipo aquí.