【一文到底】WSL2-Ubuntu中训练深度学习模型以及相关配置
【一文到底】WSL2-Ubuntu中训练深度学习模型以及相关配置
文章目录
前言:首先我为什么要安装WSL2,在windows做科研时,代码遇到很多奇奇怪怪的错误,但是又不想自己电脑装linux系统,WSL2就很好的满足了需求,而且根据一些前辈经验,wsl2更加适合我们这种没有其他服务器做科研,能减少很多不必要的错误,而且能提前熟悉一些工作场景。在这里祝各位和我自己前程似锦,心想事成!
总结:在WSL2-Ubuntu中安装CUDA12.8、cuDNN、Anaconda、Pytorch、vscode配置、训练深度学习模型
一、初始条件
首先要先确保——windows系统中要正确安装了以下组件:
(1)显卡驱动;
(2)CUDA;
(3)cuDNN;
(4)Microsoft Visual Studio;
Windows环境配置参考:【一文到底】深度学习环境配置+ PatchTST复现【Anaconda+PyTorch(GPU版)+CUDA+cuDNN】
二、WSL2安装
1.1 安装
右键单击并选择“以管理员身份运行”,在 管理员 模式下打开 PowerShell 或 Windows 命令提示符,输入 wsl --install 命令,然后重新启动计算机。
wsl --install
此命令将启用运行 WSL 并安装 Linux 的 Ubuntu 分发所需的功能。

重启后

Note:
(1)默认情况下,已安装的 Linux 分发版将为 Ubuntu。 可以通过使用-d标志来更改这一点。
-
若要更改安装的分发版,请输入:
wsl --install -d <Distribution Name>将<Distribution Name>替换为您想要安装的分发版名称。 -
若要查看可通过在线商店下载的可用 Linux 分发版的列表,请输入:
wsl --list --online或wsl -l -o。 -
若要在初始安装后安装其他 Linux 分发版,也可以使用以下命令:
wsl --install -d <Distribution Name>
1.2 设置 Linux 用户名和密码
使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。
- 此用户名和密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。
- 请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。
- 创建用户名和密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。
- 此帐户将被视为 Linux 管理员,能够运行
sudo(Super User Do) 管理命令。 - 在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。

在 Ubuntu 命令行中输入 UNIX 用户名
若要更改或重置密码,请打开 Linux 发行版并输入命令:passwd。 系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。
如果忘记了 Linux 分发版的密码:
-
请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:
wsl -u root如果需要在非默认的分发版中更新忘记的密码,请使用命令:
wsl -d Debian -u root,并将Debian替换为目标分发版的名称。 -
在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:
passwd <username>,其中<username>是发行版中帐户的用户名,而你忘记了它的密码。 -
系统将提示你输入新的 UNIX 密码,然后确认该密码。 在您被告知密码已正确更新后,请在 PowerShell 内使用以下命令关闭 WSL:
exit。
1.3 更新和升级软件包
建议使用发行版的首选包管理器定期更新和升级包。 对于 Ubuntu 或 Debian,请使用以下命令:
sudo apt update && sudo apt upgrade
三、在WSL2-Ubuntu系统中安装CUDA、cuDNN、Anaconda、pytorch
只要在Windows下配置了显卡驱动,WSL2不需要再配置
在WSL2-Ubuntu进行验证与显卡的通信和驱动调用的情况:
nvidia-smi

Note:查看ubuntu版本信息
lsb_release -a
补充:创建普通用户账号,详情看补充内容end1
2.1 安装cuda
打开CUDA官网,复制命令安装cuda
CUDA Toolkit 12.8 Downloads | NVIDIA Developer

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-9
复制安装命令到Ubuntu窗口中,回车运行。
过程中需要输入密码,直接输出设置的密码。


安装完成。
添加环境变量
第一步:确认 CUDA 目录存在
# 应看到类似:cuda-12.9/ ,然后确认 nvcc 是否在里面
ls /usr/local/
# 如果这条命令有输出,说明 CUDA 安装没问题,只是路径没加。
ls /usr/local/cuda-12.9/bin/nvcc
第二步:设置环境变量
#3 编辑 ~/.bashrc 文件:
nano ~/.bashrc
# 在最后添加这几行,保存后退出(Ctrl+O 保存,Enter 确认,Ctrl+X 退出)。:
# CUDA 12.9 PATH 设置
export PATH=/usr/local/cuda-12.9/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64:$LD_LIBRARY_PATH
第三步 使生效并且验证
# 时立即生效
source ~/.bashrc
# 验证
nvcc -V
看到输出结果即配置成功。

关于驱动程序安装程序(附加)
Note:可以跳过,推荐安装一下,不安装不影响使用。
CUDA官网,CUDA Toolkit Installer命令下面就是Driver Installer。

2.2 安装cuDNN
cuDNN 9.8.0 Downloads | NVIDIA Developer

cuDNN安装命令:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get updatesudo
apt-get -y install cudnn
安装成功(这里重启了一下Ubuntu,不影响)

验证 cuDNN 安装
ls /usr/lib/x86_64-linux-gnu/libcudnn*

cuDNN 库文件已经成功安装在/usr/lib/x86_64-linux-gnu目录下,这说明 cuDNN 的安装路径是正确的,并且系统已经正确配置了相关的库文件.
2.3 Anaconda安装
通过以下命令下载和安装:
# 1. 先 cd 到根目录下
cd
# 2. 下载安装包到temp目录下:在此地址 https://www.anaconda.com/download/success 中找到安装包的链接
wget -P /tmp https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh
# 3. 安装 anaconda
bash /tmp/Anaconda3-2025.06-0-Linux-x86_64.sh
# 4. 按照 anaconda 提示进行安装,默认安装到 /home/tsf/anaconda3
下载Anaconda

下载成功,但是可以看到多次断连和断点续传,最终是成功的。
Note:这是典型的 网络不稳定或 CDN 限速导致的下载中断。wget 在断点处被服务器关闭连接,但它启用了 断点续传(HTTP 206 Partial Content),所以能够继续下载,建议加速网络连接。
安装Anaconda


安装完成,关闭终端,关闭终端并重新打开 Ubuntu,可以看到默认进入了 base 环境。

验证安装,若出现command not found,未添加到环境变量或者conda安装不成功,可以尝试添加环境变量或者重新安装Anaconda。
# 查看conda版本
conda --version
# 查看conda中的虚拟环境
conda env list

Note:conda命令参考conda配置虚拟环境常用命令
2.4 Pytorch安装

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
Note:推荐选择 PyTorch 的 stable(稳定)版本,功能成熟、经过充分测试,适合科研和正式项目使用。不建议使用 preview(预览)版本,它属于开发测试阶段,可能存在不稳定或未完善的功能,不适合科研使用。
包管理器建议使用 pip。当前 PyTorch 官方对 conda 支持减弱,很多新版本和新功能仅通过 pip 提供。如果系统中 pip3 命令无效,可以直接使用 pip。
显卡为 50 系 NVIDIA 显卡,其架构较新,不再支持 CUDA 11.8。必须使用 CUDA 12 及以上版本,否则无法启用 GPU 加速。这是由于显卡架构变化所导致的兼容性限制,非 bug。根据个人需求选择对应的 CUDA 版本安装。


看到 Successfully就代表安装成功。
验证CUDA、cuDNN、Pytorch安装
# 第一步
python
# 第二步
import torch
# 打印 PyTorch 版本
print("PyTorch 版本:", torch.__version__)
# 检查 CUDA 是否可用
print("CUDA 是否可用:", torch.cuda.is_available())
# 如果 CUDA 可用,打印 GPU 信息
if torch.cuda.is_available():
print("GPU 名称:", torch.cuda.get_device_name(0))
print("CUDA 版本 (torch):", torch.version.cuda)
print("cuDNN 是否启用:", torch.backends.cudnn.enabled)

四 运行代码和vscode配置
4.1 代码运行
建议先创建虚拟环境,避免污染环境,参考:conda配置虚拟环境常用命令
# 第一步 创建目标目录
mkdir -p ~/models
# 第二步 用命令复制windows整个文件夹到WSL2中
# /mnt/d/... 表示 D 盘的路径在 WSL2 中的映射;
# mnt是挂载点目录,用来临时访问外部文件系统或设备中的内容,其中/mnt/d对应windows中D盘
# -r 表示递归复制整个目录;
cp -r /mnt/d/Code/model/Autoformer-main ~/models/
# 查看文件
cat requirements.txt
# 第三步 安装包(两种方式)
# 第二种直接根据文件安装更加方便,但是我已经安装了torchvision,维护环境干净,推荐第一个
# 因为我这里是GPU12.0的算力,单独配置torch,在安装需求文件时,会将torch降到11.0的版本,会导致gpu无法使用
pip install pandas scikit-learn numpy matplotlib reformer_pytorch
pip install -r requirements.txt
# 第四步 检查安装的包
pip list | grep -E "torch|pandas|scikit|matplotlib|numpy|reformer"
# 第五步 运行sh文件(先进入代码根目录)
cd models/Autoformer-main/
./scripts/ETT_script/Autoformer_ETTh1.sh

查看requirements.txt,然后安装


安装成功,然后来运行代码,本文以 Autoformer 为例(可以用自己的模型,Autoformer属于开源项目)
Note: 这里运行后应该有运行日志的,我修改了一下全部存到如logs/LongForecasting/Autoformer_ETTh1_96_96.log 日志中,结果mae和mse存到result.txt中,方便查看。

4.2 vscode配置
虽然上面已经成功运行代码,但是做code开发不是很方便,所以我们使用Visual Studio Codez作为我们的开发工具。
下载过程很简单,就略过。在vscode中安装WSL


第一种 vscode打开(vscode --> wsl2)
连接WSL2 --> open Folder --> 输入WSL2的路径 --> 运行终端 --> 切换环境 --> 运行代码

第二种 命令行连接(wsl2 --> vscode)
# 在 Windows Terminal 或 CMD 中输入,这会在当前 WSL 目录下打开 VS Code,并自动连接到对应的 Linux 子系统
wsl
cd ~/models/Autoformer-main
code .
# 报错 Command 'code' not found, but can be installed with:sudo snap install cod
#添加vscode的环境变量
nano ~/.bashrc
#在 .bashrc 写入vscode路径,注意文件名有空格需要斜杠转义或者引号
export PATH=$PATH:/mnt/d/Application/Microsoft\ VS\ Code/bin
或者
export PATH=$PATH:"/mnt/d/Application/Microsoft VS Code/bin"
#Ctrl+O 保存 --> 回车确定 --> Ctrl+O保存退出
# 打开vscode
code .

五 记录
5.1 创建普通用户
描述:第一次打开Ubuntu时,直接关掉了窗口,导致进入后是root,然后使用passwd输入了密码,需要创建普通用户赋予sudo权限(推荐做法,不推荐直接使用root)
解决办法:
# 1.创建新用户(会提示输入密码等信息,tsf为自定义用户名)
# 输入后如果有提示信息,直接全部回车跳过
adduser tsf
# 2.把新用户加入 sudo 组(赋予管理员权限)
usermod -aG sudo tsf
# 3.(可选)验证新用户属于 sudo 组
groups tsf
# 4.(可选)切换到新用户
su - tsf
# 5.新用户执行管理员命令示例
sudo apt update
5.2 为普通用户添加 NVIDIA 工具路径
描述:root 用户下 nvidia-smi 正常,GPU 驱动已连接成功,tsf 用户下 nvidia-smi 提示找不到命令(但不是驱动问题)
解决办法:
# 第一步:确认文件存在
ls /usr/lib/wsl/lib/nvidia-smi
# 第二步:修改 ~/.bashrc 添加环境变量
nano ~/.bashrc
#在末尾添加:
# WSL2 NVIDIA 工具路径
export PATH=$PATH:/usr/lib/wsl/lib
# 第三步:验证
nvidia-smi
5.3 启用WSL
Windows Subsystem for Linux (WSL) 是 Windows 10 上的一项可选功能。您可以通过 Windows 功能对话框或 PowerShell 启用它。
在 Windows 搜索栏中,输入“功能”以打开或关闭 Windows 功能对话框。向下滚动并选中“适用于 Linux 的 Windows 子系统”。

或者PowerShell,如果愿意,您可以以管理员身份打开 PowerShell 并输入:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
重新启动 Windows 后,您可以通过打开命令提示符并输入“wsl”来检查是否已启用 WSL。
5.4切换wsl2默认登录用户
在 Windows 的 PowerShell 或 CMD 里运行
# 确认你的 WSL 发行版名字
wsl -l -v
# 执行命令, tsf为你的用户名
wsl -d Ubuntu -u tsf
# 不行试试这个
ubuntu config --default-user tsf
更多推荐
所有评论(0)