安装虚拟机和YOLOv12保姆级教程
前言
- 安装虚拟机
- 安装PYthon和Pytorch
- 安装YOLOv12及其依赖
一、安装和配置Linux:
如果你更重视环境隔离,或者需要虚拟机的灵活性,VMware 或 Oracle VirtualBox 可能是更合适的选择,但性能上会略逊色于 WSL2,尤其是在需要大量 GPU 计算的深度学习训练过程中。
方案1:如果电脑上还没有安装Linux,可以安装Ubuntu,然后在Ubuntu环境下运行YOLOv12
1. 下载Ubuntu
- 可以从 Ubuntu 官方网站 下载最新版 Ubuntu
- 需要 更稳定的版本,可以选择 Ubuntu 20.04 LTS 或 Ubuntu 22.04 LTS。
2. 创建Ubuntu安装U盘
需要一个 至少 8GB 的 U 盘 来制作 Ubuntu 启动盘:
- 在 Windows 上下载 Rufus(官网)。
- 用 Rufus 将 Ubuntu ISO 写入 U 盘,制作可启动盘。
- 重新启动电脑,进入 BIOS,选择 U 盘启动并安装 Ubuntu。
3. 安装Ubuntu并配置环境
安装完成后,需要:
- 更新系统:
sudo apt update && sudo apt upgrade -y
- 安装NVIDIA驱动(如果有独立显卡):
sudo ubuntu-drivers autoinstall
方案2:在Windows上使用WSL2(适用于开发测试)
- WSL2 有一定的 GPU 兼容性问题,建议只用于开发和测试,不适用于大规模训练。
- WSL2 提供接近原生 Linux 环境的性能,特别是在训练深度学习模型时,能够利用 GPU 加速(只要你正确配置了 NVIDIA 驱动、CUDA 和 cuDNN)。对于 YOLOv12 这样的模型训练,GPU 加速至关重要,WSL2 能提供非常好的性能。
- WSL2 相比虚拟机使用的资源较少,不需要像虚拟机那样分配和管理 CPU、内存等资源,性能更高,尤其是在高负载任务(如图像分类识别训练)下表现优越。
- 如果不想安装完整的 Linux 系统,可以使用 Windows Subsystem for Linux 2(WSL2) 来运行 Ubuntu:
- 配置要求:
操作系统:Windows 10 或 Windows 11(建议使用 WSL2)。
GPU 支持:安装 NVIDIA 驱动、CUDA 和 cuDNN,确保能够在 WSL2 中使用 GPU。
深度学习框架:安装 Python、PyTorch(或其他支持 YOLO 的框架)等库。
步骤1:启用 WSL 和虚拟机平台
- 以管理员身份打开 PowerShell(Win + X 搜索 “PowerShell”,右键选择 “以管理员身份运行”)
- 运行以下命令来启用 WSL2 和虚拟机支持。这个命令会自动安装 WSL2 和 Ubuntu:
wsl --install
如果你已经安装了 WSL1,需要手动升级到 WSL2:
wsl --set-default-version 2
启用虚拟化(如果未启用的话)
打开“控制面板” -> “程序” -> “启用或关闭 Windows 功能”,勾选 虚拟机平台 和 Windows 子系统 Linux。
- 重启计算机
- 确认 WSL 版本
wsl -l -v
如果看到 Ubuntu 旁边写着 2,说明 WSL2 安装成功。
如果 wsl --install 失败,可以手动启用以下组件:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
步骤2:安装Ubuntu22.04
从 Microsoft Store 或者Google等网站下载并安装 Ubuntu 22.04,点击安装。
Ubuntu22.04下载链接: Ubuntu22.04下载链接或Microsoft Store Ubuntu22.04下载链接
安装完成后,启动 Linux 发行版,完成初始化设置(创建用户和密码)。
步骤3:将 WSL 2 设置为默认版本
打开 PowerShell(管理员权限),输入:
wsl --set-default-version 2
步骤4:安装到F盘
WSL 默认将发行版安装在系统盘(C 盘),但你可以指定安装位置。这里在安装完 Ubuntu 22.04 后,迁移到 F 盘,其他盘类似:
- 首先,在 F 盘创建一个文件夹,例如 F:\WSL,用来存储 WSL 的 Linux 文件系统。
- 然后,在 PowerShell 中输入以下命令,将 Ubuntu 移动到 F 盘。
wsl --export Ubuntu-22.04 F:\WSL\ubuntu22.04.tar
wsl --unregister Ubuntu-22.04
wsl --import Ubuntu-22.04 F:\WSL\Ubuntu-22.04 F:\WSL\ubuntu22.04.tar --version 2
这会将 Ubuntu 迁移到 F 盘并使用 WSL2。
这里,Ubuntu-22.04 是你的 WSL 实例名称,F:\ubuntu-22.04.tar 是你希望保存的目标位置。
迁移完成后可以把tar包删除。
3. 启动 Ubuntu:
wsl
或者:
wsl -d Ubuntu-22.04
这样,你就可以将 WSL2 安装到 F 盘并在该位置运行 Linux 发行版了。
方案3:使用虚拟机(适用于测试)
虚拟机性能较差,不推荐用于深度学习训练,但适用于测试和开发。
可以在 Windows 或 macOS 上使用 VirtualBox 或 VMware 安装 Ubuntu:
- 下载 VirtualBox 或 VMware。
- 安装 Ubuntu,并分配至少 4GB RAM 和 2 核 CPU(训练模型建议 8GB+)。
- 安装 YOLOv12。
方案 4:双系统安装 Windows + Ubuntu
如果你需要同时使用 Windows 和 Linux,可以安装 双系统:
备份重要数据,然后在 Windows 中使用 磁盘管理 缩小 Windows 分区,留出 50GB 以上的空间用于 Ubuntu。
使用 Ubuntu 启动 U 盘 进行安装,并在分区时选择 “安装 Ubuntu 旁边” 选项。
安装完成后,你可以在启动时选择 Windows 或 Ubuntu。
二、安装 NVIDIA CUDA(GPU 加速)和cuDNN
我选择WSL2配置 YOLO 训练 Ubuntu22.04环境(适用于 Ubuntu 20.04/22.04)。
WSL2 结合 NVIDIA GPU 加速 可以让 YOLO 训练更快、更高效。上面已经安装好WSL了,下面是完整的 配置 指南。
如果你想用 GPU 训练 YOLO,必须安装 CUDA 驱动。
1. 先在 Windows 上安装 NVIDIA 驱动
🔗 下载地址:NVIDIA驱动下载地址
2. 确认WSL2识别GPU:
在 Windows 上打开 PowerShell(管理员模式),运行命令检查更新wsl,然后重启 wsl:
wsl --update
wsl --shutdown
然后Win+R:wsl,重新启动 WSL2 Linux终端(Ubuntu22.04),运行以下命令,检查 NVIDIA GPU
是否可用。
如果能看到显卡信息,说明 WSL2 识别了你的 NVIDIA GPU(显卡驱动),驱动安装正确。
nvidia-smi
检查 CUDA 是否可用:
nvcc --version
如果 nvcc 命令未找到,需要安装 CUDA Toolkit。
安装 CUDA Toolkit:
sudo apt install -y cuda
3. 在 WSL(Ubuntu 22.04) 里安装 CUDA
NVIDIA 为 WSL2 提供了 专门的 CUDA 工具包,你需要安装 WSL 版 CUDA。
- 快捷键Win+R,输入wsl,打开 Ubuntu 终端
- 添加 NVIDIA 软件包密钥:
# 添加 NVIDIA 源
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
# 更新包管理器
sudo apt update
- 手动添加CUDA到环境变量:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
- 验证 CUDA 安装:
nvcc -V
- 安装 cuDNN
sudo apt install -y libcudnn8 libcudnn8-dev
三、安装 Python 和 PyTorch
首先安装 Python 3.10+ 和 pip:
sudo apt install -y python3 python3-pip
然后安装 PyTorch(适配 CUDA 版本):
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
报错。Ubuntu 22.04 可能使用的是 Python 3.10+,并且默认启用了 PEP 668 保护机制,防止 pip 直接修改系统 Python 依赖。
解决办法:使用 venv 创建虚拟环境(推荐)
Python 现在建议使用 虚拟环境 安装第三方包,以避免污染系统 Python 依赖。
创建一个 Python 虚拟环境
运行以下命令:
sudo apt update
sudo apt install -y python3-venv
因为YOLO和 PyTorch 目前不完全支持 Python 3.12, 可能会导致兼容性问题。
Ubuntu 22.04 的官方源默认提供的是 Python 3.10 和 Python 3.12,你需要手动添加 deadsnakes PPA 才能安装 Python 3.11。
解决办法:手动安装Python3.11:
** 1. 添加**deadsnakes PPA
sudo apt update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
这一步会添加 deadsnakes PPA,它提供多个 Python 版本的安装包。
** 安装 Python 3.11**
sudo apt install python3.11 python3.11-venv python3.11-dev -y
安装完成后,检查是否成功:
python3.11 --version
创建Python虚拟环境:
python3 -m venv ~/pytorch-env
激活虚拟环境
source ~/pytorch-env/bin/activate
(设置Python 3.11 成为 python3 命令的默认版本):
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
sudo update-alternatives --config python3
在虚拟环境中安装 PyTorch(适配 CUDA12.8 版本)(安不上啊怎么回事/(ㄒoㄒ)不管了)(原来是python版本不兼容 弄了好久)
离线下载对应版本,安装whl安装包:pytorch离线安装包下载地址
打开链接,找到版本下载
在这里:
cu118:cuda11.8版本
cp311:Python3.11版本
下载pytorch,torchvision,torchaudio,下载完成后可以把安装包删除。
**切换**到whl在的文件夹:
```bash
cd /mnt/c/User/19658/yolov12/yolov12
激活环境后,按照顺序安装三个whl文件:torch,torchvision,torchaudio
四、安装YOLOv12及依赖
在 WSL2 中 默认不包含 git,如果你遇到 git: command not found,需要先安装 Git:
sudo apt update
sudo apt install -y git
然后再运行 git clone 命令克隆 YOLOv12 仓库:
git clone https://github.com/sunsmarterjie/yolov12.git
cd yolov12
安装Flash Attention:
下载flash-attn文件:flash-attn2.7.3下载地址
pip install /path/to/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
安装其他依赖
pip install -r requirements.txt
或逐一安装:
pip install timm==1.0.14
pip install albumentations==2.0.4
pip install onnx==1.14.0
pip install onnxruntime==1.15.1
pip install pycocotools==2.0.7
pip install PyYAML==6.0.1
pip install scipy==1.13.0
pip install onnxslim==0.1.31
pip install onnxruntime-gpu==1.18.0
pip install gradio==4.44.1
pip install opencv-python==4.9.0.80
pip install psutil==5.9.8
pip install py-cpuinfo==9.0.0
pip install huggingface-hub==0.23.2
pip install safetensors==0.4.3
pip install numpy==1.26.4
如果你需要 OpenCV 进行数据增强:
pip3 install opencv-python-headless
五、验证YOLO训练环境
确保 PyTorch 能够使用 GPU:
python3 -c "import torch; print(torch.cuda.is_available())"
如果返回 True,说明 PyTorch 识别到了 GPU。
测试 YOLO 是否可用:
python3 detect.py --weights yolov12.pt --img 640 --source data/images
如果能看到推理结果,说明 YOLO 运行正常。
六、未来训练YOLO
可以使用以下命令训练 YOLO:
python3 train.py --img 640 --batch 16 --epochs 300 --data data.yaml --weights yolov12.pt --device 0
这里:
–img 640:输入图片尺寸
–batch 16:批量大小(根据显存调整)
–epochs 300:训练 300 轮
–data data.yaml:数据集配置文件
–weights yolov12.pt:预训练权重
–device 0:使用 GPU 训练
还可以通过浏览器或 API 请求来使用该服务进行推理。
- 启动 Web 服务: 运行 app.py 来启动服务。
python3 app.py
你应该会看到类似以下内容的输出,说明服务器已经启动:
Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
这里的 5000 是默认的端口,你可以根据需要修改。如果是其他端口,则会显示相应的端口号。
- 通过浏览器或 HTTP 请求进行推理
浏览器访问: 在浏览器中输入以下 URL:
http://127.0.0.1:5000
如果该 Web 服务提供了一个用户界面,你应该能够看到一个输入框来上传图片或其他方式进行推理。
通过 API 请求进行推理: 如果 app.py 提供 API 接口,你可以使用 curl 或 Python 脚本来发送图片进行推理。
例如,使用 curl 上传图片进行推理:
curl -X POST -F "file=@/path/to/image.jpg" http://127.0.0.1:5000/predict
请根据 app.py 中的 API 路径修改。
- 检查 app.py 代码了解 API 路由
如果你不确定 app.py 提供了哪些功能或路由,可以打开 app.py,查看其定义的路由和推理方式。例如,常见的 Flask 或 FastAPI 项目会包含如下代码:
from flask import Flask, request, jsonify
import torch
app = Flask(__name__)
@app.route('/predict', methods=['POST'])
def predict():
file = request.files['file']
# 进行推理并返回结果
result = model_inference(file) # 你自己的推理函数
return jsonify(result)
if __name__ == "__main__":
app.run(debug=True)
通过查看 app.py 中的代码,你可以确认 Web 服务的端点(例如 /predict),然后根据这些信息构建 API 请求。
总结
这是我自己一步步摸索出来的wsl的安装和YOLOv12的安装步骤,有不对之处请一起交流!