什麼叫「預訓練模型」?事先透過大量的數據集訓練網路模型,這樣所獲得的模型結果可稱為預訓練,不過生成的模型算是一種通用的模型。比如一個分類的模型,大量被標註的數據集輸入到網路模型經過訓練後,這樣的預訓練模型或許能做到分類工作,但不見得能做得特別精準。所以說它只是一種通用模型,如果想要讓它分類更精準,那就得用自己的數據集再做 fine tune。
        在百度的 PaddleHub 平台上 https://github.com/PaddlePaddle/PaddleHub 提供不少預訓練的模型庫,底下圖一列出了部分網路模型。百度本身擁有不少數據集,適合拿來預先訓練各類網路模型,像是人體關鍵點檢測用到 ResNet50 的模型,目標檢測用到 YOLOv3 模型做訓練,我們身為初學者可以直接拿這些模型庫來做測試,基本上都有不錯程度的效果。不過,如果要針對某特定領域做檢測,可能會覺得精準度還不足。
圖一:PaddleHub 提供的預訓練模型庫
 
        如何使用 PaddleHub?舉圖像分割為例,在 python 環境下,呼叫下面的粗體字函數。先載入模型名稱後,再調用分割的函數。

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

漢亞科技 Han-Ya

漢亞科技 Han-Ya 發表在 痞客邦 留言(1) 人氣(14)