本系列要來實作一個深度學習的模型,應用於影像分類上,但訓練完就結束了嗎?以前在學校修課或是做研究,可能比較會著重於生出一個好模型,或是研究如何讓模型更厲害,但在實際應用上,我們還會部署模型,做後續的應用供使用者方便操作。此系列除了帶大家輕鬆上手訓練影像分類模型之外,還會簡單分享如何讓訓練完的模型,透過網頁框架套件,及時下熱門的深度學習應用使用者介面,來部署訓練好的模型,讓使用者可以簡單上手使用。
「工欲善其事,必先利其器」,要開始實作前,先來看看內容與需要準備的工具吧!
在實作影像分類模型前,會先介紹此系列所使用的深度學習框架,以及資料集的取得來源。
深度學習框架:TensorFlow、Keras
資料集好朋友:Kaggle
接著就要開始實作模型了!在開始之前,需要先建立開發環境(坑可能比寫程式還多)。
準備堅強的心:開發環境建立
建立好環境之後,就可以開始寫程式啦!在這之前可以先想想有興趣的資料集主題,找到適合的資料後,就可以開始進行資料前處理。
模型的靈魂:資料前處理
為了讓訓練資料更多元,能夠更泛化,通常會做資料增強。本系列會介紹兩種資料增強的方法。
資料增強的方法 (1):ImageDataGenerator
資料增強的方法 (2):以新增 Layer 實現
開始建構深度學習模型,包含訓練模型、評估模型與測試模型。
模型建構的方法 (1):序列式模型
模型建構的方法 (2):函數式 API
訓練模型的方法:遷移學習
訓練,啟動!開始編譯模型
評估模型的方法:評估數值
我的模型訓練好了嗎?overfitting 是關鍵!
模型正則化方法 (1):L1 和 L2 正則化
模型正則化方法 (2):Dropout
回呼模組 (1):ModelCheckpoint
回呼模組 (2):EarlyStopping
回呼模組 (3):CSVLogger
訓練結果可視化
測試模型:影像推論
評估模型測試結果
推論結果可視化:混淆矩陣
已經訓練好一個不錯的模型後,就能部署模型啦!
部署模型的方法 (1):Flask
部署模型的方法 (2):FastAPI
部署模型的方法 (3):Gradio
無論是跟著此系列實作,或是未來開發其他專案,都可以使用到的好用工具。
好用的日誌工具:loguru
最後介紹其他輸入訓練資料的方法,以及使用爬蟲技術下載圖片。
輸入訓練資料的另一種方法
使用爬蟲技術蒐集圖片
準備好要一起遊玩了嗎?