# 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) ------------------------- # 錯誤處理