1. 錯誤原因分析
- 根本問題:當前安裝的PyTorch是CPU版本,無法調用GPU硬件加速。
- 當運行以下代碼時會報錯:
model = YOLO("yolov8n.pt").to("cuda") # 或 .cuda()
2. 解決方案步驟
步驟1:驗證CUDA可用性
在Python中運行以下命令檢查環境:
import torch
print(torch.__version__) # 查看PyTorch版本
print(torch.cuda.is_available()) # 必須返回True
如果輸出為False
,說明PyTorch未啟用CUDA支持。
步驟2:重新安裝支持CUDA的PyTorch
根據您的CUDA版本(通過nvcc --version
查看),選擇對應命令安裝:
CUDA版本 | 安裝命令 |
---|---|
CUDA 12.x | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 |
CUDA 11.8 | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 |
CPU版本 | pip install torch torchvision torchaudio |
驗證安裝:
import torch
assert torch.cuda.is_available() # 不報錯則成功
步驟3:重新安裝Ultralytics YOLOv8
確保YOLO庫與PyTorch兼容:
pip uninstall ultralytics -y
pip install ultralytics
3. 備用方案(如果無NVIDIA GPU)
如果設備確實沒有GPU,強制使用CPU運行:
model = YOLO("yolov8n.pt").to("cpu") # 顯式指定CPU
# 或者直接
model = YOLO("yolov8n.pt") # 默認自動選擇設備
4. 常見問題排查
問題現象 | 解決方案 |
---|---|
nvcc --version 找不到 | 安裝CUDA Toolkit:NVIDIA官網下載 |
版本沖突 | 創建干凈的conda環境:conda create -n yolo python=3.8 conda activate yolo |
驅動過舊 | 更新GPU驅動:驅動下載 |
5. 完整正確代碼示例
import torch
from ultralytics import YOLO# 確認CUDA可用
assert torch.cuda.is_available(), "CUDA不可用,請檢查PyTorch安裝!"# 加載模型并啟用GPU
model = YOLO("yolov8n.pt").to("cuda")# 運行推理
results = model("image.jpg") # 自動使用GPU加速
6. 性能對比(GPU vs CPU)
設備 | 推理速度 (FPS) | 顯存占用 |
---|---|---|
RTX 3090 | 120+ | ~2GB |
CPU (i9-12900K) | 8-12 | 無 |
通過正確配置CUDA環境,將獲得10倍以上的速度提升!