系统要求
- Windows/Linux/MacOS
- NVIDIA GPU (推荐) 或 CPU
- Python 3.8+
- CUDA 11.8+ (如果使用 GPU)
安装步骤
1. 安装 Conda
如果还没有安装 Conda,请先从官网下载并安装 Miniconda。
2. 创建虚拟环境
# 创建名为 yolov5 的新环境,使用 Python 3.8
conda create -n yolov5 python=3.8 -y
# 激活环境
conda activate yolov5
3. 安装 NVIDIA 驱动和 CUDA
- 访问 NVIDIA 驱动下载页面 下载并安装最新的显卡驱动
- 检查 NVIDIA 驱动安装:
# 查看显卡和驱动信息
nvidia-smi
4. 安装 CUDA 和 cuDNN
- 访问 NVIDIA CUDA 下载页面 下载 CUDA 11.8
- 安装 CUDA 11.8,按照安装向导完成安装
- 访问 NVIDIA cuDNN 下载页面(需要注册 NVIDIA 账户)
- 下载 cuDNN v8.9.x 版本(与 CUDA 11.8 兼容):
- 访问 cuDNN 下载页面
- 选择 “Download cuDNN v8.9.x for CUDA 11.x”
- 下载适用于 Windows 的 zip 文件
- 解压下载的 cuDNN 文件,将文件复制到 CUDA 目录:
# 假设 cuDNN 解压在 D:\Downloads\cudnn_11.8
# 复制文件到 CUDA 目录
$CUDA_PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8"
$CUDNN_PATH = "C:\cuDNN\cudnn"# 复制 bin 文件
Copy-Item "$CUDNN_PATH\bin\*" "$CUDA_PATH\bin"# 复制 include 文件
Copy-Item "$CUDNN_PATH\include\*" "$CUDA_PATH\include"# 复制 lib 文件
Copy-Item "$CUDNN_PATH\lib\*" "$CUDA_PATH\lib\x64"
- 验证 CUDA 安装:
# 检查 CUDA 版本
nvcc --version# 检查 CUDA 样例
cd "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.8\1_Utilities\deviceQuery"
nvcc deviceQuery.cu -o deviceQuery.exe
.\deviceQuery.exe
4. 安装 PyTorch
根据你的 CUDA 版本选择合适的安装命令:
对于 CUDA 11.8:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
对于 CPU 版本:
pip install torch torchvision torchaudio
4. 安装 YOLOv5
# 使用 ultralytics 包(推荐)
pip install ultralytics# 或者从源码安装
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -r requirements.txt
5. 验证安装
5.1 CUDA和cuDNN测试脚本
创建文件 test_cuda_cudnn.py
:
import torch
import torch.backends.cudnn as cudnndef test_cuda_cudnn():print("PyTorch version:", torch.__version__)# 检查CUDA是否可用print("\nCUDA是否可用:", torch.cuda.is_available())if torch.cuda.is_available():print("CUDA版本:", torch.version.cuda)print("当前CUDA设备:", torch.cuda.current_device())print("CUDA设备名称:", torch.cuda.get_device_name(0))# 检查cuDNN是否可用print("\ncuDNN是否可用:", cudnn.is_available())if cudnn.is_available():print("cuDNN版本:", cudnn.version())print("cuDNN是否已启用:", cudnn.enabled)if __name__ == "__main__":test_cuda_cudnn()
5.2 YOLOv5 GPU测试脚本
创建文件 test.py
:
import torch
from ultralytics import YOLO# 检查 CUDA 是否可用
print(f"CUDA is available: {torch.cuda.is_available()}")
print(f"PyTorch version: {torch.__version__}")# 设置默认设备为GPU
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"Using device: {device}")# 如果有GPU,显示GPU信息
if torch.cuda.is_available():print(f"GPU: {torch.cuda.get_device_name(0)}")try:# 加载改进版模型到GPUprint("\n正在加载模型...")model = YOLO("yolov5su.pt") # 使用改进的u版本模型model.to(device) # 将模型移到GPU# 打印模型信息print("\n模型加载成功!")print(f"模型类型: {type(model)}")print(f"模型任务: {model.task}")print(f"模型使用设备: {model.device}")# 尝试进行一次简单预测来验证模型print("\n正在进行测试预测...")# 使用一个示例图像,如果没有,可以注释掉这行# results = model("path/to/test/image.jpg")# print("预测完成!结果:", results)except Exception as e:print(f"\n错误: 模型加载或预测失败\n{str(e)}")
5.3 cuDNN安装脚本
创建文件 setup_cudnn.ps1
:
# Script to copy cuDNN files to CUDA directory
$CUDA_PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8"
$CUDNN_PATH = "C:\cuDNN\cudnn"# Create directories if they don't exist
if (-not (Test-Path "$CUDA_PATH\bin")) {New-Item -ItemType Directory -Path "$CUDA_PATH\bin" -Force
}
if (-not (Test-Path "$CUDA_PATH\include")) {New-Item -ItemType Directory -Path "$CUDA_PATH\include" -Force
}
if (-not (Test-Path "$CUDA_PATH\lib\x64")) {New-Item -ItemType Directory -Path "$CUDA_PATH\lib\x64" -Force
}# Copy bin files
Write-Host "Copying bin files..."
Copy-Item "$CUDNN_PATH\bin\*" "$CUDA_PATH\bin" -Force# Copy include files
Write-Host "Copying include files..."
Copy-Item "$CUDNN_PATH\include\*" "$CUDA_PATH\include" -Force# Copy lib files
Write-Host "Copying lib files..."
Copy-Item "$CUDNN_PATH\lib\*" "$CUDA_PATH\lib\x64" -ForceWrite-Host "cuDNN setup completed!"
常见问题
-
CUDA 错误
- 确保已安装正确版本的 NVIDIA 驱动
- 确保 PyTorch 和 CUDA 版本匹配
-
内存不足
- 减小批处理大小
- 使用更小的模型(如 yolov5s 而不是 yolov5x)
-
依赖冲突
- 建议在干净的虚拟环境中安装
- 按照版本要求严格安装依赖
其他资源
- YOLOv5 官方文档
- PyTorch 安装指南
- CUDA 工具包下载