在 WSL 2 上通过 DirectML 启用 PyTorch
此预览版为学生和初学者提供了一种方法,可使用 torch-directml 包开始在现有硬件上的机器学习 (ML) 空间中构建知识。 设置后,即可开始使用我们的示例。
注意
一些信息与预发布产品相关,在商业发行之前可能发生实质性修改。 Microsoft 对此处提供的信息不提供任何明示或暗示的保证。
检查 Windows 版本
本机适用于 Linux 的 Windows 子系统 (WSL) 上的 torch-directml 包从 Windows 11 开始运行。 可以查看内部版本号,方法是通过 Run 命令(Windows 徽标键 + R)运行 winver
。
检查 GPU 驱动程序更新
确保已安装最新的 GPU 驱动程序。 在“设置”应用的“Windows 更新”部分中,选择“检查是否有更新”。
设置 Torch-DirectML 预览版
安装 WSL 2
若要安装适用于 Linux (WSL) 2 的 Windows 子系统,请按照安装 WSL 中的说明操作。
然后,按照 microsoft/wslg GitHub 存储库的 README.md
文件中的说明安装 WSL GUI 驱动程序。
设置 Python 环境
建议在 WSL 2 实例内设置虚拟 Python 环境。 可以使用许多工具来设置虚拟 Python 环境 - 在本主题中,我们将使用 Anaconda 的 Miniconda。 此设置的其余部分假定你使用 Miniconda 环境。
按照 Anaconda 网站上的安装指南安装 Miniconda,或在 WSL 中运行以下命令来安装 Miniconda。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
安装 Miniconda 后,创建名为 directml 的 Python 环境并通过以下命令激活它:
conda create --name directml -y
conda activate directml
安装 PyTorch 和 Torch-DirectML 插件
注意
torch-directml 包仅支持 PyTorch 1.13。
最新版本的 Torch-DirectML 遵循插件模型,这意味着要安装两个包。 首先,运行以下命令安装 PyTorch 依赖项:
conda install numpy pandas tensorboard matplotlib tqdm pyyaml -y
pip install opencv-python
pip install wget
pip install torchvision
然后,安装 PyTorch。 出于我们的目的,只需安装 CPU 版本,但如果需要其他计算平台,请按照 PyTorch 网站上的安装说明进行操作。
conda install pytorch cpuonly -c pytorch
最后,安装 Torch-DirectML 插件。
pip install torch-directml
验证和设备创建
安装 Torch-DirectML 包后,可以通过添加两个张量来验证其是否正确运行。 首先启动交互式 Python 会话,并使用以下行导入 Torch:
import torch
import torch_directml
dml = torch_directml.device()
Torch-DirectML 插件的当前版本映射到“PrivateUse1”Torch 后端。 新的 orch_directml.device() API 是一个方便的包装器,用于将张量发送到 DirectML 设备。
创建 DirectML 设备后,现在可以定义两个简单的张量:一个张量包含 1,另一个张量包含 2。 将张量放在“dml”设备上。
tensor1 = torch.tensor([1]).to(dml) # Note that dml is a variable, not a string!
tensor2 = torch.tensor([2]).to(dml)
将张量相加,然后打印结果。
dml_algebra = tensor1 + tensor2
dml_algebra.item()
应该显示输出数字 3,如下例所示。
>>> import torch
>>> tensor1 = torch.tensor([1]).to(dml)
>>> tensor2 = torch.tensor([2]).to(dml)
>>> dml_algebra = tensor1 + tensor2
>>> dml_algebra.item()
3
PyTorch with DirectML 示例和反馈
现在,你已准备好开始了解有关 ML 训练的详细信息。 查看我们的示例以开始使用。 如果遇到问题或有关于 PyTorch with DirectML 包的反馈,请与我们的团队联系。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈