一、前言
今天尝试在WSL2环境中部署训练YOLOv11,顺便把环境配置好。
二、安装CUDA
由于WSL2中并不能直接使用宿主机的显卡,所以需要安装CUDA on WSL以安装NVIDIA驱动到WSL中。注意必须是WSL2,WSL2对GPU的支持使这些应用程序能够受益于GPU加速计算,WSL1不支持。
-
打开cmd或pwsh更新一下WSL内核:
wsl.exe --update
-
确保宿主机已安装最新的NVIDIA GPU驱动程序。访问NVIDIA驱动下载页面,选择适合的显卡型号和操作系统(Windows),下载并安装最新驱动。
-
在WSL2中安装CUDA Toolkit:
-
启动WSL2终端(例如Ubuntu发行版)。
-
下载适用于WSL-Ubuntu的CUDA Toolkit。参考NVIDIA官方文档,运行以下命令:
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda-repo-wsl-ubuntu-12-3-local_12.3.0-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-12-3-local_12.3.0-1_amd64.deb sudo cp /var/cuda-repo-wsl-ubuntu-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda-toolkit-12-3
-
-
验证CUDA安装:
-
安装完成后,运行以下命令检查CUDA版本:
nvcc --version
-
确保返回的版本信息与安装的CUDA版本一致(例如12.3)。
-
三、安装Python环境
YOLOv11依赖Python环境,推荐使用Miniconda来管理Python环境。
-
下载并安装Miniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh
按照提示完成安装,初始化conda环境。
-
创建并激活新的conda环境:
conda create -n yolov11 python=3.10 conda activate yolov11
-
安装必要的Python依赖:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu123 pip install ultralytics
四、安装YOLOv11
-
克隆YOLOv11的官方仓库(以Ultralytics YOLO为例):
git clone https://github.com/ultralytics/ultralytics.git cd ultralytics pip install -e .
-
验证YOLOv11安装:
yolo version
如果返回版本号(如11.x.x),说明安装成功。
五、配置训练环境
-
准备数据集:
-
将数据集放置在指定目录(例如
datasets/
),确保数据集格式符合YOLOv11的要求(通常为YOLO格式:图片+标签文件)。 -
创建
data.yaml
配置文件,指定训练、验证集路径和类别信息。例如:train: ./datasets/train/images val: ./datasets/val/images nc: 80 names: ['class1', 'class2', ..., 'class80']
-
-
测试GPU可用性:
python -c "import torch; print(torch.cuda.is_available())"
如果返回
True
,说明GPU配置正确。
六、开始训练
-
运行训练命令:
yolo train model=yolov11n.pt data=data.yaml epochs=100 imgsz=640 device=0
model
:选择预训练模型(如yolov11n.pt
)。data
:指定数据集配置文件。epochs
:训练轮数。imgsz
:输入图片尺寸。device
:指定GPU设备(0表示第一个GPU)。
-
训练完成后,模型权重将保存在
runs/train/
目录下。
七、常见问题
- CUDA版本不匹配:确保宿主机驱动、CUDA Toolkit和PyTorch的CUDA版本一致。
- GPU不可用:检查WSL2是否正确识别GPU,运行
nvidia-smi
确认。 - 内存不足:减少
batch_size
或使用更小的模型(如yolov11n
)。
八、总结
通过以上步骤,我们在WSL2中成功配置了YOLOv11的训练环境。WSL2结合CUDA支持为Windows用户提供了一个高效的深度学习开发平台。后续可以根据需求调整数据集或超参数,进一步优化模型性能。