什麼叫「預訓練模型」?事先透過大量的數據集訓練網路模型,這樣所獲得的模型結果可稱為預訓練,不過生成的模型算是一種通用的模型。比如一個分類的模型,大量被標註的數據集輸入到網路模型經過訓練後,這樣的預訓練模型或許能做到分類工作,但不見得能做得特別精準。所以說它只是一種通用模型,如果想要讓它分類更精準,那就得用自己的數據集再做 fine tune。
在百度的 PaddleHub 平台上 https://github.com/PaddlePaddle/PaddleHub 提供不少預訓練的模型庫,底下圖一列出了部分網路模型。百度本身擁有不少數據集,適合拿來預先訓練各類網路模型,像是人體關鍵點檢測用到 ResNet50 的模型,目標檢測用到 YOLOv3 模型做訓練,我們身為初學者可以直接拿這些模型庫來做測試,基本上都有不錯程度的效果。不過,如果要針對某特定領域做檢測,可能會覺得精準度還不足。
import paddlehub as hub module = hub.Module(name="deeplabv3p_xception65_humanseg") res = module.segmentation(paths = ["./test.jpg"], visualization=True, output_dir='humanseg_output')
底下是人臉辨識模組,
module = hub.Module(name="ultra_light_fast_generic_face_detector_1mb_640") res = module.face_detection(paths = ["./test.jpg"], visualization=True, output_dir='face_detection_output')
最後講到 fine-tune,如果這些預訓練的模型庫在自己的環境檢測效果不佳的話,利用深度學習的遷移學習 (Transfer Learning) 技術將預訓練模型加入一些自己的數據資料再訓練,產生出符合自己環境的模型。
文章標籤
全站熱搜

***謝謝Han-Ya分享的資訊 & 體驗心得,很詳盡喔 😍 >>>Han-Ya: 我們家的格子 [2周前po出] 新的遊記: [162]: 俄羅斯(12): 漫遊莫斯科(2): 購物 https://jeje4fp.pixnet.net/blog/post/339191694 歡迎有空閒時光臨, 請來看看喔. 若是有空光臨我格子,歡迎留言交流討論心得喔. 😊