在Windows系统上利用WSL2(Windows Subsystem for Linux 2)安装Ubuntu,并配置深度学习环境,是许多开发者兼顾日常使用和模型训练的理想选择。本文将带你一步步完成WSL2 Ubuntu深度学习配置,并成功运行一个深度学习模型训练示例,帮助你快速上手Ubuntu深度学习环境搭建,并充分利用WSL2 GPU加速功能。
首先确保Windows系统版本满足要求(Windows 10 版本2004及以上或Windows 11)。以管理员身份打开PowerShell,执行以下命令启用WSL功能并设置默认版本为WSL2:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartwsl --set-default-version 2 重启电脑后,在Microsoft Store搜索“Ubuntu”并安装(推荐Ubuntu 20.04或22.04 LTS)。安装完成后启动,设置用户名和密码。
进入Ubuntu终端,首先更新软件包列表并升级已安装软件:
sudo apt update && sudo apt upgrade -ysudo apt install build-essential curl wget git -y WSL2中无需在Linux内安装NVIDIA驱动,只需在Windows主机上安装最新的NVIDIA驱动(支持WSL2)。然后到NVIDIA官网下载适用于WSL2的CUDA Toolkit安装包。以CUDA 11.8为例:
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.runsudo sh cuda_11.8.0_520.61.05_linux.run 安装时取消勾选“Driver”,仅安装CUDA Toolkit。安装后配置环境变量:
echo "export PATH=/usr/local/cuda-11.8/bin:$PATH" >> ~/.bashrcecho "export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH" >> ~/.bashrcsource ~/.bashrc 下载并安装Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.sh 按提示完成安装,重启终端或执行source ~/.bashrc激活conda。创建并激活一个深度学习虚拟环境:
conda create -n dl python=3.9conda activate dl 在激活的dl环境中,安装支持CUDA的PyTorch:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 验证CUDA是否可用:
python -c "import torch; print(torch.cuda.is_available())" 若输出True,则WSL2 GPU加速配置成功。
为了方便交互式开发,可以安装Jupyter:
pip install jupyterjupyter notebook --ip=0.0.0.0 --port=8888 --no-browser 然后在Windows浏览器中访问http://localhost:8888即可。
下面我们用PyTorch训练一个简单的卷积神经网络在MNIST数据集上,验证整个环境是否正常工作。创建一个Python脚本train_mnist.py:
import torchimport torch.nn as nnimport torch.optim as optimfrom torchvision import datasets, transformsdevice = torch.device("cuda" if torch.cuda.is_available() else "cpu")print(f"Using device: {device}")# 定义简单的CNNclass SimpleCNN(nn.Module): def init(self): super(SimpleCNN, self).init() self.conv1 = nn.Conv2d(1, 32, 3, 1) self.conv2 = nn.Conv2d(32, 64, 3, 1) self.fc1 = nn.Linear(9216, 128) self.fc2 = nn.Linear(128, 10) def forward(self, x): x = self.conv1(x) x = nn.functional.relu(x) x = self.conv2(x) x = nn.functional.relu(x) x = nn.functional.max_pool2d(x, 2) x = torch.flatten(x, 1) x = self.fc1(x) x = nn.functional.relu(x) x = self.fc2(x) return nn.functional.log_softmax(x, dim=1)# 加载MNIST数据transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))])train_dataset = datasets.MNIST("./data", train=True, download=True, transform=transform)train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)model = SimpleCNN().to(device)optimizer = optim.Adam(model.parameters())model.train()for epoch in range(1, 4): for batch_idx, (data, target) in enumerate(train_loader): data, target = data.to(device), target.to(device) optimizer.zero_grad() output = model(data) loss = nn.functional.nll_loss(output, target) loss.backward() optimizer.step() if batch_idx % 100 == 0: print(f"Epoch {epoch} [{batch_idx*len(data)}/{len(train_loader.dataset)}] Loss: {loss.item():.6f}")print("训练完成!") 运行脚本:
python train_mnist.py 如果一切顺利,你将看到GPU上的训练过程,至此你已经成功在WSL2 Ubuntu深度学习环境中完成了第一个深度学习模型训练任务。
- 确保Windows防火墙允许WSL2访问网络。 - 若CUDA不可用,检查Windows驱动版本和WSL2内核更新。 - 可调整.wslconfig文件限制WSL2内存和CPU使用,避免占用过多宿主机资源。
通过本文,你从零开始完成了WSL2 Ubuntu深度学习配置,并实际运行了模型训练。现在你可以在此基础上开展更复杂的深度学习项目,享受WSL2带来的高效开发体验。
本文由主机测评网于2026-02-24发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260226983.html