Aktivieren von PyTorch mit DirectML unter WSL 2

Diese Vorschau bietet Schülern und Anfängern eine Möglichkeit, Ihr Wissen im ML-Raum (maschinelles Lernen) auf Ihrer vorhandenen Hardware mithilfe des Pakets torch-directml zu erstellen. Nach der Einrichtung können Sie mit unseren Beispielen beginnen.

Hinweis

Einige Informationen beziehen sich auf Vorabversionen, die vor der kommerziellen Freigabe grundlegend geändert werden können. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.

Überprüfen der Version von Windows

Das Paket torch-directml auf systemeigenen Windows-Subsystem für Linux (WSL) funktioniert ab Windows 11. Sie können die Buildversionsnummer überprüfen, indem Sie winver mit dem Befehl Ausführen (Windows-Logotaste + R) ausführen.

Überprüfen auf GPU-Treiberupdates

Stellen Sie sicher, dass Sie den neuesten GPU-Treiber installiert haben. Wählen Sie im Abschnitt Windows Update der App Einstellungen die Option Nach Updates suchen aus.

Einrichten der Vorschau Torch-DirectML

Installieren von WSL 2

Um das Windows-Subsystem für Linux (WSL) 2 zu installieren, befolgen Sie die Anweisungen in Installieren von WSL.

Installieren Sie dann den WSL-GUI-Treiber, indem Sie den Anweisungen in der README.md Datei im GitHub-Repository microsoft/wslg folgen.

Einrichten einer Python-Umgebung

Es wird empfohlen, eine virtuelle Python-Umgebung in Ihrer WSL 2-Instance einzurichten. Es gibt viele Tools, die Sie verwenden können, um eine virtuelle Python-Umgebung einzurichten. In diesem Fall wird Miniconda von Anaconda verwendet. Für den Rest dieses Setups wird davon ausgegangen, dass Sie eine Miniconda-Umgebung verwenden.

Installieren Sie Miniconda, indem Sie dem Installations-Leitfaden auf der Anaconda-Site folgen oder durch Ausführen der folgenden Befehle in WSL.

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

Sobald Miniconda installiert ist, erstellen Sie eine Python-Umgebung namens directml und aktivieren diese mit den folgenden Befehlen:

conda create --name directml -y
conda activate directml

Installieren Sie PyTorch und das Torch-DirectML-Plug-In

Hinweis

Das Paket torch-directml unterstützt nur PyTorch 1.13.

Die neueste Version von Torch-DirectML folgt einem Plug-In-Modell, was bedeutet, dass Sie zwei Pakete installieren müssen. Installieren Sie zuerst die PyTorch-Abhängigkeiten, indem Sie die folgenden Befehle ausführen:

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

Installieren Sie dann PyTorch. Für unsere Zwecke müssen Sie nur die CPU-Version installieren, aber wenn Sie andere Compute-Plattformen benötigen, folgen Sie den Installationsanweisungen auf der Website von PyTorch.

conda install pytorch cpuonly -c pytorch

Installieren Sie schließlich das Torch-DirectML-Plug-In.

pip install torch-directml

Überprüfung und Geräteerstellung

Sobald Sie das Paket Torch-DirectML installiert haben, können Sie überprüfen, ob es ordnungsgemäß ausgeführt wird, indem Sie zwei Tensoren hinzufügen. Starten Sie zuerst eine interaktive Python-Sitzung, und importieren Sie Torch mit den folgenden Positionen:

import torch
import torch_directml
dml = torch_directml.device()

Die aktuelle Version des Torch-DirectML-Plug-In wird dem "PrivateUse1" Torch Back-End zugeordnet. Die neue torch_directml.device()-API ist ein praktischer Wrapper zum Senden Ihrer Tensoren an das DirectML-Gerät.

Mit dem erstellten DirectML-Gerät können Sie nun zwei einfache Tensoren definieren. ein Tensor, der eine 1 und ein anderer, der eine 2 enthält. Platzieren Sie die Tensoren auf dem „dml“-Gerät.

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

Fügen Sie die Tensoren zusammen, und drucken Sie die Ergebnisse.

dml_algebra = tensor1 + tensor2
dml_algebra.item()

Die Ausgabe 3 sollte wie im folgenden Beispiel angezeigt werden.

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

Beispiele und Feedback für PyTorch mit DirectML

Jetzt sind Sie bereit, mehr über ML-Training zu erfahren. Mit unseren Beispielen können Sie gleich loslegen. Wenn Sie Probleme haben oder Feedback zum PyTorch mit DirectML-Paket haben, wenden Sie sich bitte hier an unser Team.