本專案旨在建立一個貓狗影像分類模型,透過卷積神經網絡 (CNN) 對影像進行特徵擷取,並區分圖片中的動物是貓還是狗。模型在 Kaggle 的 Dogs vs Cats 資料集上進行訓練,最終達到不錯的分類效果。此專案提供訓練、測試與推論的完整流程,方便後續擴充與應用。
- Python: 3.6 或以上版本
- 主要函式庫:
- TensorFlow 2.x 或 PyTorch(依您所使用的深度學習框架)
- Keras(若使用 TensorFlow 作為後端)
- NumPy
- OpenCV 或 Pillow(用於影像預處理)
- scikit-learn(用於資料切分與評估)
- Dogs vs Cats 資料集
- 來源:Kaggle (Dogs vs Cats)
- 請下載資料集後,解壓縮至專案的
data/資料夾,或依據程式設定調整資料路徑。
本模型主要使用卷積神經網絡 (CNN),基本架構如下:
- 卷積層與池化層:負責影像特徵提取
- 全連接層:用以整合特徵並進行二分類
- 激活函式:在最後一層使用 Sigmoid 或 Softmax 進行輸出
模型的詳細架構可參考 model.py 中的定義,根據需求進行調整與優化。
-
Clone 專案
git clone https://github.com/your_username/cat_dog_classifier.git cd cat_dog_classifier -
建立虛擬環境並安裝相依套件
python -m venv venv source venv/bin/activate # Linux / macOS venv\Scripts\activate # Windows pip install -r requirements.txt
-
準備資料集
- 下載 Dogs vs Cats 資料集 並解壓縮到 data/ 資料夾內,或依照需求修改資料路徑。
執行下列指令開始模型訓練:
python train.py --data_path ./data --epochs 50 --batch_size 32參數說明:
- --data_path:指定資料集路徑
- -epochs:訓練週期數(預設 50)
- -batch_size:每次訓練的批次大小(預設 32)
訓練完成後,您可以使用以下指令對單張圖片進行預測:
python predict.py --image_path ./data/sample.jpg程式會輸出預測結果,顯示該圖片為貓或狗。
在驗證集上,本模型達到了約 90% 的分類準確率。更多詳細結果與模型調參細節,請參閱專案中的報告文件或 results/ 資料夾內的相關資料。
-模型優化:探索更深層次的網絡結構(如 ResNet、Inception 等)以提升分類效能。 -資料增強:應用資料增強技術以改善模型的泛化能力。 -超參數調整:進一步透過交叉驗證和網格搜尋優化模型參數。 -部署應用:嘗試將模型部署至 Web 或行動裝置,進行即時預測。
如果您在使用過程中遇到任何問題,歡迎在 Issue 中提出,或直接聯繫作者討論改進方案。