## YOLOv8 安裝指南
**01_安裝CUDA**
1. 查詢電腦顯示卡支援的CUDA版本
到Nvidia控制面板-->系統資訊(左下角)
-->元素 看NCVUDA64.DLL為CUDA 多少,以此圖為例,顯示卡最高可以相容的版本到CUDA 12.4.89

2. 查詢Pytorch與cuDNN版本
先查看pytorch以及cuDNN的版本支持
* Pytorch:
https://pytorch.org/
* cuDNN:https://developer.nvidia.com/rdp/cudnn-archive
以此圖為例,Pytorch 安裝的選項中,目前最新可以支援CUDA 11.8 / 12.1 兩個版本

而cuDNN可以支援CUDA 11代以及12代的版本

知道資訊後可以開始比對出我們可以使用出的最新版本
> 顯示卡最高:CUDA12.4
> pytorch:最新為11.8 或 12.1
> cuDNN:可以支援CUDA 11代以及12代
得出我們目前可以使用的最新CUDA版本為12.1版
3. 下載CUDA
到官網下載上述選擇的CUDA版本,在這邊我是選擇12.1版本。
https://developer.nvidia.com/cuda-toolkit-archive
如圖,這邊選擇相應的選項(Installer type 選擇local),即可下載。

4. 安裝CUDA

取消Visual Studio Interattion這個選項

確認後安裝
5. 確認是否安裝成功
打開cmd,執行
```
nvcc -V
```

顯示這些表示安裝成功
**02_安裝cuDNN**
1. 下載cuDNN
下載可以兼容的cuDNN版本(需登入網站)

2. 安裝cuDNN
下載會是一個壓縮檔,解壓縮後,複製其中的資料夾
然後貼到CUDA的安裝目錄下,即完成安裝。


4. 確認是否安裝成功
打開cmd並cd到CUDA內的demo_suite資料夾
```
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\demo_suite
```
執行 bandwidthTest.exe
```
bandwidthTest.exe
```

顯示PASS
再輸入
```
deviceQuery.exe
```

紅框出現顯卡型號以及PASS
表示已安裝成功
**03_Pytorch安裝**
1. 下載torch
以miniconda為例,先在miniconda建立一個python環境,接著到pytorch官網,選擇選項後,直接複製下方command,並且執行 即可安裝
```
#conda 創立環境範例,--name後面放自己的環境名稱,python版本自行修改
conda create --name yolo8 python=3.12
#創立後,啟用環境
conda activate yolo8
```
建立好環境後,我在conda內執行下方command

```
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
```
開始安裝,結束出現done表示完成
> 可能遇到的問題-->pip版本要更新
# 安裝YOLOv8
在建置好的環境中,執行
```
pip install ultralytics
```
即安裝完成
# 簡單測試YOLOv8 Object detection功能
要到yolov8 github 下載預訓練模型
https://github.com/ultralytics/ultralytics

並且下面model=YOLO(yolov8n.pt"),裡面要擺預訓練模型檔案的路徑
接著執行以下程式,可以用預設電腦攝像頭開啟影像辨識。
```
from ultralytics import YOLO
import cv2
# Load a model
model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training)
# Predict with the model
results = model.predict(source=0,show=True,)
#print(results)
```
整體安裝錯誤可能出現之問題:
> CUDA和cuDNN版本不相容
> CUDA和Pytorch版本不相容
> cuDNN和Pytorch版本不相容
> 顯示卡不支持CUDA的版本。
*Author:Mi-Chi Wang*