以 PyTorch 訓練並執行 Inception-v2 影像分類模型的命令列(主控台)範例,可在 Windows 11 與 Ubuntu Linux 24.04 執行。核心程式位於 src/examples/imagenet/,並可透過 --arch 參數選用多種網路架構,預設為 Inception-v2。內附的範例資料集 plate 為鋼板表面瑕疵影像,共 6 個類別(CR、IN、PA、PS、RS、SC),並隨附已訓練好的 Inception-v2 權重,因此可以直接進行推論。

 

[資料夾結構]

  • CLAUDE.md / AGENT.md:程式規格文件,兩個檔案內容完全相同。
  • CHANGELOG.md:版本變更紀錄。
  • copyright.txt:版權聲明。
  • 1512.00567.pdf:Inception-v2 / v3 參考論文。
  • data/{dataset}/:labels_map.txt(類別清單,訓練時會重新產生),以及 train/、val/、test/ 三組資料夾,採用 torchvision ImageFolder 結構(每個類別各一個子資料夾)。
  • model/{dataset}/:model_best.pth.tar(最佳權重)、checkpoint.pth.tar(最新權重)、logs/(TensorBoard 記錄)。
  • tool/tools.py:共用工具函式。
  • src/:包裝後的進入點、核心程式(examples/imagenet/)、啟動腳本與本說明文件。
  • venv/:Python 虛擬環境,由步驟 01 建立。

[操作步驟及說明]

1. 01_venv_create.bat / 01_venv_create.sh

刪除舊的 venv/,建立全新的虛擬環境,並安裝 src/requirements.txt 中的相依套件。若 pip 安裝失敗,會直接中止並顯示錯誤訊息。

 

2. 02_venv_activate.bat / 02_venv_activate.sh

啟用虛擬環境。Linux 請以 source 方式執行:source src/02_venv_activate.sh。

 

3. 03_train.bat / 03_train.sh

訓練分類模型。預設參數:資料集 plate、架構 inception_v2、批次大小 32、影像尺寸 512、500 個 epoch、學習率 0.0001。若 model_best.pth.tar 已存在,會自動接續訓練。

 

4. 04_tensorboard.bat / 04_tensorboard.sh

開啟 TensorBoard 檢視 model/{dataset}/logs 的訓練記錄。位置參數為 [資料集] [連接埠],預設為 plate 與 6066。

 

5. 05_inference.bat / 05_inference.sh

對單張影像進行分類,預設使用 data/plate/test/IN/IN-1.png。

 

6. 06_inference_folder.bat / 06_inference_folder.sh

對整個資料夾中的影像進行分類,預設為 data/{dataset}/test,並輸出 Acc@1 與 Acc@5 準確率。

 

7. 07_inference_folder_topk.bat / 07_inference_folder_topk.sh

資料夾推論的另一種版本,輸出漏檢率(underkill)、過殺率(overkill)與正確率統計。

 

8. 99_venv_clear.bat / 99_venv_clear.sh

刪除 venv/ 虛擬環境資料夾。

 

[Python 程式進入點]

src/train.py

  • --dataset plate:資料集名稱
  • --arch inception_v2:網路架構
  • --batch-size 32:批次大小
  • --image-size 512:影像尺寸
  • --epochs 500:訓練回合數
  • --learning-rate 0.0001:學習率
  • --workers 4:資料載入的執行緒數量
  • --num-classes:類別數量(選用)
  • --resume:接續訓練的權重檔路徑
  • --pretrained:預訓練權重檔路徑

類別數量會依 data/{dataset}/train 底下的類別資料夾自動判斷。若 model/{dataset}/model_best.pth.tar 已存在,預設會自動接續訓練;加上 --resume "" 則從頭訓練。權重會存到 model/{dataset}/,TensorBoard 記錄存到 model/{dataset}/logs/(每次執行都會清空重建)。

 

src/inference.py

  • --dataset plate:資料集名稱
  • --arch inception_v2:網路架構
  • --source:輸入來源,可以是單一影像或整個資料夾
  • --batch-size 64:批次大小
  • --image-size 512:影像尺寸
  • --num-classes:類別數量(選用)
  • --weights:使用的權重檔路徑(選用)
  • --topk-right:資料夾模式改為輸出漏檢、過殺與正確率統計(選用)
  • --show:顯示每張影像(選用,需要有桌面環境)

給檔案路徑會分類單張影像;給資料夾則會針對所有影像輸出 Acc@1 與 Acc@5 準確率。

 

[快速開始]

Windows 11

src\01_venv_create.bat

src\05_inference.bat

src\06_inference_folder.bat

src\03_train.bat

src\04_tensorboard.bat

 

Ubuntu 24.04

bash src/01_venv_create.sh

bash src/05_inference.sh

bash src/06_inference_folder.sh

bash src/03_train.sh

bash src/04_tensorboard.sh

 

由於隨附了已訓練好的權重,推論可以直接執行。Inception-v2 在 512 影像尺寸下運算量相當大,訓練實務上建議搭配 NVIDIA GPU,而以 CPU 進行資料夾推論也會很慢。

 

[GPU 設定]

在 Windows 上,PyPI 預設安裝的 torch 只支援 CPU。若要使用 NVIDIA GPU,請先以 nvidia-smi 確認驅動程式的 CUDA 版本,再安裝對應的版本,例如 CUDA 12.8:

pip uninstall -y torch torchvision

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128

 

程式會自動偵測 CUDA,若無法使用則自動改用 CPU。

 

[參考資料]

這個 SDK 內建於 MYAI Studio 人工智慧開發工具。

 

單獨購買價格:3,000元,永久授權,單一 SDK 授權,單機授權,一次下載,一年電子郵件範例諮詢服務。如果是軟體客製化問題,請購買我們的客製化顧問服務點數。