---
# System prepended metadata

title: yolo訓練和GPU設定教學

---

# yolo訓練及GPU設定
## 資料集準備
### 資料集格式
![image](https://hackmd.io/_uploads/SkdjyPnr1l.png)
### label圖片
```
pip install labelImg
# 開啟label程式
labelImg
```
### 設定yaml檔
yaml 檔主要設定路徑跟標記類別數量( nc )、標記名稱(names)
![image](https://hackmd.io/_uploads/Bk-nevnryl.png)

## 本地模型訓練
```
pip install ultralytics
```
### CPU
```
from ultralytics import YOLO

# 選擇訓練模型
model = YOLO("yolov8n.pt")

# 顯示model資訊
model.info()

# 訓練
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device='cpu')

```
### GPU

安裝pytorch，需選擇對應版本
https://pytorch.org/
![image](https://hackmd.io/_uploads/r13SKP3r1l.png)

```
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
```
測試
```
import torch
torch.cuda.is_available()
```
輸出**True**為成功
![image](https://hackmd.io/_uploads/B1HMcv2Byx.png)
訓練
```
from ultralytics import YOLO

# 選擇訓練模型
model = YOLO("yolov8n.pt")

# 顯示model資訊
model.info()

# 訓練(device=0 使用GPU)
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)

```



-----------------------------
# GPU CUDA、CUDNN設定
## 查看GPU資料
打開命令提示字元
```
nvidia-smi
```
![image](https://hackmd.io/_uploads/SJRWMPnHke.png)
"Driver Version"驅動版本
"CUDA Version"表示CUDA支援最高版本

查看顯卡的驅動程式與 CUDA 的版本對應，若顯卡驅動程式版本低於上面的規格，則要更新驅動

顯卡驅動程式與 CUDA 的版本對應: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
## 安裝CUDA
CUDA 下載: https://developer.nvidia.com/cuda-toolkit-archive

![image](https://hackmd.io/_uploads/Sy9oXP2B1e.png)

![image](https://hackmd.io/_uploads/S1cv4v3ryl.png)

![image](https://hackmd.io/_uploads/SklquNw3Bke.png)

### 檢查安裝
打開命令提示字元，有結果表示成功
```
nvcc -V
```
![image](https://hackmd.io/_uploads/SJcVSP2Hye.png)


## 安裝CUDNN
下載跟 CUDA 版本一樣的 CUDNN 選擇 Windows，需先申請成為會員才能下載

CUDNN 下載: https://developer.nvidia.com/rdp/cudnn-archive

下載後解壓縮
![image](https://hackmd.io/_uploads/BJpvDD3Hkx.png)

找到CUDA位置，將左邊3個CUDNN資料夾複製到CUDA(直接取代)
![image](https://hackmd.io/_uploads/S1eWdv2r1g.png)

### 驗證
打開命令提示字元
```
# 更改為自己的路徑
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\demo_suite

deviceQuery.exe
```
出現表示成功
![image](https://hackmd.io/_uploads/HJntdv2Syg.png)

-------------------------
# 錯誤處理