0
本文作者: AI研習社-譯站 | 2018-08-13 17:32 |
雷鋒網按:本文為AI研習社編譯的技術博客,原標題A Comprehensive guide to Fine-tuning Deep Learning Models in Keras (Part II),作者為 Felix Yu 。
翻譯 | 霍曉燕 校對 | 楊東旭 整理 | 余杭
本部分屬該兩部系列中的第二部分,該系列涵蓋了基于 Keras 對深度學習模型的微調。第一部分闡述微調背后的動機和原理,并簡要介紹常用的做法和技巧。本部分將詳細地指導如何在 Keras 中實現(xiàn)對流行模型 VGG,Inception 和 ResNet 的微調。
為什么選擇 Keras ?
Keras 是建立在 Theano 或 TensorFlow 之上的一個極簡的神經網絡庫。該庫允許開發(fā)人員快速地將想法原型化。除非你正在做一些涉及制定具有截然不同的激活機制的神經架構的前沿研究,否則 Keras 將提供構建相當復雜的神經網絡所需的所有構建模塊。
同時附帶了大量的文檔和在線資源。
硬件說明
我強烈建議在涉及繁重計算的Covnet訓練時,使用GPU加速。速度差異相當大,我們談論的 GPU 大約幾小時而 CPU 需要幾天。
我推薦使用 GTX 980 Ti 或者有點貴的 GTX 1080,它售價約 600 美元。
Keras 微調
我已經實現(xiàn)了基于 Keras 的微調啟動腳本,這些腳本存放在這個 github 頁面中。包括 VGG16,VGG19,GoogleLeNet,nception-V3 和 ResNet50 的實現(xiàn)。這樣,你就可以為自己的微調任務定制腳本。
下面是如何使用腳本微調 VGG16 和 Inception-V3 模型的詳細演練。
VGG16 微調
VGG16 是牛津大學視覺幾何組(VGG)在 2014 年 ILVRC(ImageNet)競賽中使用的 16 層卷積神經網絡。該模型在驗證集上達到了 7.5% 的前 5 錯誤率,這使得他們在競賽中獲得了第二名。
VGG16 模型示意圖:
可以在 vgg16.py 中找到用于微調 VGG16 的腳本。vgg_std16_model 函數(shù)的第一部分是 VGG 模型的結構。定義全連接層之后,我們通過下面一行將 ImageNet 預訓練權重加載到模型中:
為了進行微調,我們截斷了原始的 softmax 層,并使用下面一段我們自己的代碼替換:
最后一行的 num_class 變量代表我們分類任務中的類別標簽的數(shù)量。
......
想要繼續(xù)閱讀,請移步至我們的AI研習社社區(qū):https://club.leiphone.com/page/TextTranslation/720
更多精彩內容盡在 AI 研習社。
不同領域包括計算機視覺,語音語義,區(qū)塊鏈,自動駕駛,數(shù)據(jù)挖掘,智能控制,編程語言等每日更新。
手機端可以掃描二維碼訪問
雷鋒網雷鋒網
雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。