最近在配置YOLO(You Only Look Once)進行物體檢測和圖像分割任務時,發現默認安裝的情況下,YOLO使用的是CPU進行計算。
這對於需要處理大量圖像或實時檢測的任務來説,效率明顯不足。
本文將詳細介紹如何將YOLO從CPU模式切換到GPU模式,顯著提升運行效率。
1. 配置步驟
1.1. 檢查當前PyTorch是否支持GPU
首先需要確認當前安裝的PyTorch是否支持GPU。打開Python環境,運行以下代碼:
import torch
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA是否可用: {torch.cuda.is_available()}")
print(f"當前設備: {torch.cuda.current_device() if torch.cuda.is_available() else 'CPU'}")
print(f"設備名稱: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else '無GPU設備'}")
如果輸出顯示CUDA是否可用: False,説明需要重新安裝支持GPU的PyTorch版本。
我在默認安裝 YOLO 之後,顯示的就是False。
1.2. 卸載現有的torch庫
如果當前PyTorch不支持GPU,需要先卸載相關庫:
pip uninstall torch torchvision torchaudio
1.3. 查看本機GPU情況(Windows 11系統)
在Windows 11系統中,可以通過以下方式查看GPU信息:
- 按
Win + X鍵,選擇"任務管理器" - 切換到"性能"選項卡
- 查看GPU信息,確認GPU型號和CUDA支持情況
或者使用命令行:
nvidia-smi
這將顯示NVIDIA GPU的詳細信息,包括CUDA版本。
我的電腦顯示信息如下:
Sat Sep 27 17:35:25 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 556.12 Driver Version: 556.12 CUDA Version: 12.5 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 2060 WDDM | 00000000:01:00.0 On | N/A |
| N/A 35C P8 14W / 80W | 937MiB / 6144MiB | 10% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
1.4. 安裝匹配的GPU版本PyTorch
從上面的命令顯示結果來看,我的CUDA Version是 12.5。
所以應該使用如下命令安裝:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu125
但是,目前似乎沒有提供cu125的版本,上面的命令會報錯,於是安裝了cu121版本。
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
至此,安裝成功。
1.5. 驗證GPU使用效果
安裝成功後,運行驗證代碼:
import torch
from ultralytics import YOLO
# 檢查GPU是否可用
print(f"CUDA是否可用: {torch.cuda.is_available()}")
print(f"設備名稱: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else '無GPU設備'}")
# 加載YOLO模型並指定使用GPU
model = YOLO('yolov11n.pt') # 以YOLOv8n為例
results = model('path/to/your/test.mp4')
2. 性能對比
完成配置後,你會注意到:
- 訓練速度:GPU訓練通常比CPU快很多
- 推理速度:實時檢測的幀率大幅提升
- 批量處理:GPU可以並行處理更多圖像
在我的電腦上,換成GPU之後,那個test.mp4的處理速度從44秒多降到7秒多,大約快了6倍多。
我的顯卡很一般,好的顯卡效果更明顯。
3. 常見問題解決
- CUDA版本不匹配:確保安裝的PyTorch版本與系統CUDA版本兼容
- 內存不足:如果遇到GPU內存不足,可以減小批量大小(batch size)
- 驅動問題:確保安裝了最新的NVIDIA顯卡驅動
4. 總結
通過將YOLO從CPU遷移到GPU,你可以顯著提升模型訓練和推理的效率。
這一簡單的配置調整將為你的計算機視覺項目帶來質的飛躍。
如果電腦有GPU,儘快替換吧!