[應用] 預訓練模型庫 PaddleHub 快速實現 AI
什麼叫「預訓練模型」?現在的科技巨擘本身擁有海量的數據以及大型算力系統,他們事先透過這些大量的數據集訓練神經網路模型,這樣所獲得的模型結果可稱為預訓練,不過生成的模型算是一種通用的模型。比如一個分類的模型,大量被標註的數據集輸入到網路模型經過訓練後,這樣的預訓練模型或許能做到分類工作,但不見得能做得特別精準。所以說它只是一種通用模型,如果想要讓它分類更精準,那就得用自己的數據集再做 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) 技術將預訓練模型加入一些自己的數據資料再訓練,產生出符合自己環境的模型。
留言