Habilitar o PyTorch com o DirectML no WSL 2

Esta versão prévia fornece aos alunos e iniciantes uma forma de começar a desenvolver seu conhecimento no espaço de aprendizado de máquina (ML) em seu hardware existente usando o pacote PyTorch com DirectML. Após a configuração, você pode começar com nossos exemplos.

Observação

Algumas informações relacionam-se ao produto de pré-lançamento, o qual poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.

Verifique sua versão do Windows

O pacote torch-directml no Windows Subsystem for Linux (WSL) nativo funciona a partir do Windows 11. Verifique o número de versão do build executando winver por meio do comando Run (Tecla Windows + R).

Verificar se há atualizações de driver da GPU

Certifique-se de que você tem os drivers de GPU mais recentes instalados. Selecione Verifique se há atualizações na seção do Windows Update do aplicativo de Configurações.

Configurar a visualização prévia do Torch-DirectML

Instalar o WSL 2

Para instalar o Subsistema do Windows para Linux (WSL) 2, siga as instruções em Instalar o WSL.

Em seguida, instale o driver da interface gráfica do usuário do WSL, seguindo as instruções no arquivo README.md no repositório do GitHub microsoft/wslg.

Configurar um ambiente Python

Recomendamos que você configure um ambiente Python virtual em sua instância do WSL 2. Há muitas ferramentas que você pode usar para configurar um ambiente virtual Python. Neste tópico, usaremos o Miniconda do Anaconda. O restante dessa configuração pressupõe que você use um ambiente Miniconda.

Instale o Miniconda seguindo as orientações de instalação no site do Anaconda ou executando os seguintes comandos no WSL.

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 
bash Miniconda3-latest-Linux-x86_64.sh

Depois que o miniconda for instalado, crie um ambiente Python directml e ative-o com os seguintes comandos:

conda create --name directml -y
conda activate directml

Instalar o PyTorch e o plug-in Torch-DirectML

Observação

O pacote torch-directml é compatível somente com o PyTorch 1.13.

A versão mais recente do Torch-DirectML segue um modelo de plugin, o que significa que você tem dois pacotes para instalar. Primeiro, instale as dependências do PyTorch executando os seguintes comandos:

conda install numpy pandas tensorboard matplotlib tqdm pyyaml -y
pip install opencv-python
pip install wget
pip install torchvision

Em seguida, instale o PyTorch. Para nossos objetivos, você só precisa instalar a versão cpu, mas se precisar de outras plataformas de computação, siga as instruções de instalação no site do PyTorch.

conda install pytorch cpuonly -c pytorch

Por fim, instale o plug-in Torch-DirectML.

pip install torch-directml

Verificação e criação de dispositivos

Depois de instalar o pacote tensorflow-directml, adicione dois tensores para verificar se ele é executado corretamente. Primeiro, inicie uma sessão interativa do Python e importe o Torch com as seguintes linhas:

import torch
import torch_directml
dml = torch_directml.device()

A versão atual do plugin Torch-DirectML é mapeada para o back-end do Torch, "PrivateUse1". A nova API torch_directml.device() é um wrapper conveniente para enviar os tensores ao dispositivo DirectML.

Com o dispositivo DirectML criado, agora você pode definir dois tensores simples: um tensor contendo 1 e outro contendo 2. Coloque os tensores no dispositivo "dml".

tensor1 = torch.tensor([1]).to(dml) # Note that dml is a variable, not a string!
tensor2 = torch.tensor([2]).to(dml)

Adicione os tensores e imprima os resultados.

dml_algebra = tensor1 + tensor2
dml_algebra.item()

O número 3 deverá ser o resultado, como no exemplo abaixo.

>>> import torch
>>> tensor1 = torch.tensor([1]).to(dml)
>>> tensor2 = torch.tensor([2]).to(dml)
>>> dml_algebra = tensor1 + tensor2
>>> dml_algebra.item()
3

PyTorch com exemplos e comentários de DirectML

Agora está tudo pronto para você começar a aprender mais sobre o treinamento de ML. Confira nossos exemplos para começar hoje mesmo. Se você tiver problemas ou comentários a fazer sobre o pacote PyTorch com DirectML, entre em contato com nossa equipe.