---
# System prepended metadata

title: 人工智慧
tags: [Coding]

---

# 人工智慧
基本上還是以windows為主
mac沒有gpu
**windows中:**
下載anacomda
接著進入anacomda prompt
![螢幕擷取畫面 2025-03-21 154621](https://hackmd.io/_uploads/H130t99n1e.png)

# 指令與教學
cpu環境
```python=
#創建虛擬環境並且指定版本
conda create -n yolov5_CPU python=3.7
#進入虛擬環境
activate yolov5_CPU
#安裝第三方函式庫
pip install torch==1.7.0+cpu torchvision==0.8.1+cpu torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install pyyaml
pip install tqdm
pip install opencv-python==3.4.9.31
pip install requests
pip install psutil
pip install matplotlib
pip install seaborn
pip install tensorboard==2.4.1
pip install protobuf==3.20
pip install ultralytics
```
gpu環境
```python=
conda create -n yolov5_GPU python=3.7
activate yolov5_GPU

pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116
pip install pyyaml
pip install tqdm
pip install opencv-python==3.4.9.31
pip install requests
pip install psutil
pip install matplotlib
pip install seaborn
pip install tensorboard==2.4.1
pip install protobuf==3.20
pip install Ultralytics
```
```python=
#colab掛載硬碟
from google.colab import drive
drive.mount('/content/drive')
```
conda 環境管理
```python=
conda --version
#檢查有沒有安裝conda
conda create -n BodyDetect python=3.11
#建立名為BodyDetect的環境 且python版本為3.11
conda activate BodyDetect 
#進入名為BodyDetect的環境
conda env list
#列出已經安裝的環境
conda remove --name <環境名稱> --all
#刪除指定環境
```
# mac 配置
但mac跑起來也還是超級慢
mac要記得用brew下載的python去跑
因為python有分arm與x86版的
用brew的python建立虛擬環境是安全的
```python=
brew install python@3.10
#在目前資料夾建立名為.venv的虛擬環境
/opt/homebrew/Cellar/python@3.10/3.10.16/bin/python3.10 -m venv .venv
#啟用虛擬環境
source .venv/bin/activate
#下載tensorflow
pip install tensorflow
```
tensorflow測試程式
```python=
import tensorflow as tf

print(tf.__version__)  # 確保 TensorFlow 正確安裝
print("Num GPUs Available:", len(tf.config.experimental.list_physical_devices('GPU')))
```
環境
以 TensorFlow 為主，不裝 JAX，這樣環境才不會打架。
```python=
pip install numpy==1.26.4
pip install protobuf==4.25.3
pip install tensorflow==2.19.0
pip install tensorboard==2.19.0
pip install torch torchvision
pip install mediapipe==0.10.21
pip install pyyaml
pip install tqdm
pip install pandas

```


# 虛擬記憶體不夠
當跳出分頁不足時代表虛擬記憶體不足 要手動調整
選進階設定
![螢幕擷取畫面 2025-03-21 190924](https://hackmd.io/_uploads/HJzWKa521e.png)
按效能的設定
![螢幕擷取畫面 2025-03-21 190855](https://hackmd.io/_uploads/SkfWtp5h1l.png)
虛擬記憶體變更
![螢幕擷取畫面 2025-03-21 190859](https://hackmd.io/_uploads/rJMWtaq21l.png)
自定義大小 要記得按設定
![螢幕擷取畫面 2025-03-21 203841](https://hackmd.io/_uploads/BJYJCCqh1g.png)


# mask偵測
下載檔案
https://drive.google.com/drive/folders/1UKmCR2voA9iLHKHSNWYDcrxp61yzzJyk?usp=sharing

到資料夾中
```python=
cd D:\Downloads\yolov5-masterFaceMask
```
啟動環境之後執行程式碼
```python=
python detect.py --weight runs/train
```
![image](https://hackmd.io/_uploads/HkN5h55n1e.png)
在這個資料夾就會出現偵測好的圖片
![image](https://hackmd.io/_uploads/H1dg6q9nye.png)

cpu
```
訓練: 
python train.py --data faceMask/data.yaml --cfg models/yolov5s.yaml --batch-size 16 --device cpu --epoch 100
測試:
python detect.py --source people.jpg
python detect.py --weight runs/train/exp/weights/best.pt --source people.jpg
python detect.py --weight runs/train/exp/weights/best.pt --source mask.jpg
python detect.py --weight runs/train/exp/weights/best.pt --source mask.jpg --iou-thres 0.3 --conf-thres 0.5
```

gpu
```
訓練: 
python train.py --data faceMask/data.yaml --cfg models/yolov5s.yaml --batch-size 16 --device 0 --epoch 10
測試:
python detect.py --source people.jpg
python detect.py --weight runs/train/exp/weights/best.pt --source mask.jpg
python detect.py --weight runs/train/exp/weights/best.pt  --source mask.jpg --iou-thres 0.3 --conf-thres 0.5
```
![image](https://hackmd.io/_uploads/ByI2Q29nJx.png)
![image](https://hackmd.io/_uploads/BkbAm25nyl.png)
os.environ["GIT_PYTHON_REFRESH"] = "quiet"
# 自製資料集
在teach machine中用鏡頭迅速建立資料集
![image](https://hackmd.io/_uploads/S1Sqrs921g.png)
train完之後可以去區分臉的特徵或是把模型下載下來在本地端執行
![image](https://hackmd.io/_uploads/BJ6O8iq31e.png)

或是按downloadsample
![image](https://hackmd.io/_uploads/H1NrCiq21x.png)
到roboflow
![image](https://hackmd.io/_uploads/SJGMlh93Jg.png)
上傳完後儲存繼續
![image](https://hackmd.io/_uploads/ByTXln5nJl.png)
開始標注
![image](https://hackmd.io/_uploads/SJpSg2qnJe.png)
選中間的
![image](https://hackmd.io/_uploads/ryVwgn9hJe.png)
![image](https://hackmd.io/_uploads/SJHOxh931l.png)
![image](https://hackmd.io/_uploads/ryodx3q3kg.png)
![image](https://hackmd.io/_uploads/SkpKx392ye.png)
![圖片1](https://hackmd.io/_uploads/ByP4Zhq31g.png)
![image](https://hackmd.io/_uploads/ByL8W3q31x.png)
最後下載標記好的資料集
![image](https://hackmd.io/_uploads/HJ7FZ2q2ye.png)

### 本地端
下載好的資料放在剛剛mask資料夾之下
並改名成drink
![image](https://hackmd.io/_uploads/By-CF2qnyg.png)

到drink裡面開啟data.yaml
![螢幕擷取畫面 2025-03-21 180311](https://hackmd.io/_uploads/ryhOYn521x.png)
加上path: drink
![image](https://hackmd.io/_uploads/SkL1Khc2yx.png)


在conda prompt的虛擬環境中
到mask資料夾之後打上指令後開始訓練

CPU訓練(慢)
```python=
python train.py --data drink/data.yaml --cfg models/yolov5s.yaml --batch-size 16 --device cpu --epoch 10
```
GPU訓練(快)
```python=
python train.py --data drink/data.yaml --cfg models/yolov5s.yaml --batch-size 16 --device 0 --epoch 10
```

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



訓練成果會放在runs/train/exp2
![螢幕擷取畫面 2025-03-21 204025](https://hackmd.io/_uploads/BJo8R09hkg.png)

最後對圖片偵測
```python=
#對單一圖片
python detect.py --weight runs/train/exp2/weights/best.pt --source cans.jpg
#對多個圖片(放在一個資料夾)
python detect.py --weights runs/train/exp2/weights/best.pt --source drink\test\images
```
成果存在exp3
![螢幕擷取畫面 2025-03-21 204617](https://hackmd.io/_uploads/rJg2yyj2ke.png)

或是開啟鏡頭偵測
```python=
python detect.py --weight runs/train/exp2/weights/best.pt --source=0 imgsz=320 show=true
```
### colab
把mask丟到雲端
![螢幕擷取畫面 2025-03-21 193310](https://hackmd.io/_uploads/HJliC6chke.png)
把drink放在mask裡面後
![螢幕擷取畫面 2025-03-21 193502](https://hackmd.io/_uploads/S12eJ05nJx.png)
到colab掛載與cd
```python=
#colab掛載硬碟
from google.colab import drive
drive.mount('/content/drive')

#移動
%cd /content/drive/MyDrive/yolov5-master
!ls
```
![螢幕擷取畫面 2025-03-21 193625](https://hackmd.io/_uploads/SybvkC9nkx.png)
data.yaml改成這樣
不要用../與path
![螢幕擷取畫面 2025-03-21 201739](https://hackmd.io/_uploads/Hy5lFA5nJx.png)
開始訓練
```python=
!python train.py --data drink/data.yaml --cfg models/yolov5s.yaml --batch-size 16 --epoch 2
```
![螢幕擷取畫面 2025-03-21 202825](https://hackmd.io/_uploads/SJAOjRc21x.png)


# 大語言模型ollama
下載ollama
![image](https://hackmd.io/_uploads/r1uorFukxe.png)

```bash
# deepseek模型
ollama run deepseek-r1:1.5b
ollama run deepseek-r1:1.5b --verbose #verbose是可以看token數之類的
# 中研院的模型
ollama run cwchang/llama3-taide-lx-8b-chat-alpha1:latest

```
參數介紹
![image](https://hackmd.io/_uploads/ByZPUY_kex.png =400x)

RAG增強檢索例子(老師提供的)
https://drive.google.com/drive/folders/1aMxvWQpBKcJFY2u0c7f72Sh6FyZ0bYFf?usp=sharing

Ollama與Open WebUI
https://hackmd.io/@LHB-0222/open-webui

# Docker
Docker 是一個開源的平台，主要用來打包、部署、執行應用程式，而且可以在不同的環境中保持一致的行為。簡單說，它讓你可以把應用程式和它所需要的一切（像是程式碼、函式庫、設定檔等）放在一個「容器」（container）中，這樣無論你是在開發、測試還是上線，都可以確保它「跑起來就是一樣的」。

# 專利網站
https://tiponet.tipo.gov.tw/gpss1/gpsskmc/gpssbkm?@@0.6891765159166224

# notebookLM
https://notebooklm.google.com/