Keras與深度學(xué)習(xí)實戰(zhàn) 課件 第1章 1.3 Keras簡介_第1頁
Keras與深度學(xué)習(xí)實戰(zhàn) 課件 第1章 1.3 Keras簡介_第2頁
Keras與深度學(xué)習(xí)實戰(zhàn) 課件 第1章 1.3 Keras簡介_第3頁
Keras與深度學(xué)習(xí)實戰(zhàn) 課件 第1章 1.3 Keras簡介_第4頁
Keras與深度學(xué)習(xí)實戰(zhàn) 課件 第1章 1.3 Keras簡介_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Keras簡介(2)1Keras安裝目錄Keras特性2Keras中的預(yù)訓(xùn)練模型3在眾多深度學(xué)習(xí)框架中,Keras在成為TensorFlow的官方API后越發(fā)受到關(guān)注,并以易操作、模塊化、易擴(kuò)展等特性在眾多的API中脫穎而出。截至2021年初,Keras擁有超過40萬個人用戶,在整個行業(yè)和研究領(lǐng)域都得到了廣泛的采用。Keras特性Keras號稱是人類而非機器而設(shè)計的API,使得其易于學(xué)習(xí)且易于使用。齊全的文檔讓深度學(xué)習(xí)的初學(xué)者可以很快上手該框架。同時有不少的科研現(xiàn)目也是基于Keras框架,這使得一個新的技術(shù)出來的時候,很快就能找到相關(guān)的Keras例子。易操作Keras使用面向?qū)ο蟮脑O(shè)計,因此所有內(nèi)容都被視為對象(如網(wǎng)絡(luò)層、參數(shù)、優(yōu)化器等)。所有模型參數(shù)都可以作為對象屬性進(jìn)行訪問。它基于TensorFlow和Theano模塊化封裝產(chǎn)生,吸納了TensorFlow、Theano在神經(jīng)網(wǎng)絡(luò)上的突出表現(xiàn),同時提供一致而簡潔的API,允許可配置的模塊可以用最少的代價自由組合在一起,在新模塊的創(chuàng)建上也超級容易。模塊化Keras提供了快速構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)的模塊。但Keras并不處理如張量乘法、卷積等底層操作。這些操作依賴于某種特定的、優(yōu)化良好的張量操作庫。Keras依賴于處理張量的庫就稱為“后端”。易擴(kuò)展1Keras安裝目錄Keras特性2Keras中的預(yù)訓(xùn)練模型3本書在TensorFlow2.3.0、Keras2.4.3和Python3.8.5的環(huán)境下編寫。Keras可以支持很多后端,由于Keras默認(rèn)使用TensorFlow作為后臺,所以在安裝Keras前需要安裝TensorFlow。在TensorFlow2.x版本的使用中,常在導(dǎo)包時因為環(huán)境路徑不對出現(xiàn)報錯,可以通過安裝VisualStudio解決。VisualStudio安裝步驟如下。(1)運行安裝文件后,可以更改VisualStudio的安裝路徑,并選擇自定義安裝如右圖所示,然后單擊“下一步”按鈕。Keras安裝(2)之后出現(xiàn)可選擇功能,勾選VisualC++如右圖所示,然后單擊“下一步”按鈕。Keras安裝(3)選擇需要安裝的功能后,VisualStudio會提示選定的功能,如下左圖所示,然后單擊“安裝”按鈕,出現(xiàn)安裝的進(jìn)度如下右圖所示。Keras安裝(4)安裝成功并重啟計算機后,在開始菜單欄中出現(xiàn)VisualStudio2015,如下圖所示。安裝VisualStudio2015后可以選擇安裝Anaconda。Anaconda是一個開源的Python發(fā)行版本,其包含了conda、Python等多個科學(xué)包及其依賴項,使用Anaconda可以相對快速搭建可運行的環(huán)境。Keras安裝AnacondaPrompt相當(dāng)于命令提示符CMD,與CMD不同的是Prompt已經(jīng)配置好環(huán)境變量。初次安裝Anaconda的包一般比較舊,為了避免之后使用報錯,可以先單擊打開“AnacondaPrompt”,如右圖所示。然后輸入“condaupdate–all”命令,更新所有包的版本,在提示是否更新的時候輸入“y”(即Yes),然后等待更新完成即可。Keras安裝在安裝過程中,可以根據(jù)不同需求選擇pip命令或者conda命令兩種方式安裝程序包,即“pipinstallpackage_name”和“condainstallpackage_name”,其中“package_name”是指程序包的名稱。pip和conda在實現(xiàn)環(huán)境中的依賴關(guān)系方面有所不同。安裝包時,pip會在遞歸的串行循環(huán)中安裝依賴項。不能確保同時滿足所有包的依賴性。如果較早安裝的軟件包與稍后安裝的軟件包具有不兼容的依賴性版本,則可能導(dǎo)致破壞的環(huán)境。使用conda進(jìn)行安裝可確保滿足環(huán)境中安裝的所有包的所有要求。conda執(zhí)行的環(huán)境檢查可能需要額外的時間,但有助于防止創(chuàng)建破壞的環(huán)境。但是不要同時使用兩種方式,在安裝包時保持使用一致的命令。Keras安裝在安裝Keras框架之前,需要安裝指定版本的TensorFlow,使用pip安裝指定版本TensorFlow如以下代碼所示。pipinstalltensorflow==2.3.0#安裝指定版本keras使用pip安裝指定版本Keras,如以下代碼所示。pipinstallkeras==2.4.3#安裝指定版本kerasKeras安裝成功安裝Keras的界面如下圖所示。Keras安裝如果讀者之前已經(jīng)安裝過了不同版本的Keras,那么可以升級現(xiàn)有的包或卸載現(xiàn)有的包,如以下代碼所示:pipupdatekeras#對現(xiàn)有的Keras包進(jìn)行升級pipremovekeras#卸載現(xiàn)有的Keras包Keras安裝1Keras安裝目錄Keras特性2Keras中的預(yù)訓(xùn)練模型3預(yù)訓(xùn)練即提前給模型輸入特定參數(shù),這個特定的參數(shù)通過其他類似數(shù)據(jù)集習(xí)得,然后再使用已有的數(shù)據(jù)集進(jìn)行訓(xùn)練,最終得到合適的模型參數(shù)。相比較于隨機初始化參數(shù)的模型,預(yù)訓(xùn)練的模型得到結(jié)果速度更快,但是兩者得到的結(jié)果并沒有太大的差距。Keras中的預(yù)訓(xùn)練模型由于時間限制或硬件水平限制,在訓(xùn)練比較復(fù)雜的模型時通常的做法并不會從頭開始訓(xùn)練模型,這也就是預(yù)訓(xùn)練模型(pre-trainedmodel)存在的意義。預(yù)訓(xùn)練模型是前人為了解決類似問題所創(chuàng)造出來的模型,在解決問題的時候,不用從零開始訓(xùn)練一個新模型,可以從類似問題中訓(xùn)練過的模型入手。一個預(yù)訓(xùn)練模型對于需要解決的問題并不是100%的準(zhǔn)確對接,但可以節(jié)省大量時間。在一個屬于圖像分類的手機圖片分辨項目上,訓(xùn)練數(shù)據(jù)集中有四千多張圖片,測試集中有1200張圖片,項目任務(wù)是將圖片分到16個類別中。預(yù)訓(xùn)練模型的概念如果采用一個簡單的多層感知機(Multi-laterPerceptron,MLP)模型,在對輸入圖片(224×224×3)平整化后,訓(xùn)練模型所得結(jié)果的準(zhǔn)確率只有百分之六左右。嘗試對隱藏層、隱層神經(jīng)元以及丟棄率進(jìn)行調(diào)整,但準(zhǔn)確率都沒有顯著提高。如果采用卷積神經(jīng)網(wǎng)絡(luò),訓(xùn)練結(jié)果表明準(zhǔn)確率有了顯著的提高,可以達(dá)到原來的兩倍以上,但距離分類最低的標(biāo)準(zhǔn)還是太遠(yuǎn)。如果采用在ImageNet數(shù)據(jù)集上預(yù)先訓(xùn)練好的模型VGG16,在VGG16結(jié)構(gòu)的基礎(chǔ)上,將softmax層的“1000”改為16,從而適應(yīng)16分類的問題,訓(xùn)練結(jié)果的準(zhǔn)確率可以達(dá)到70%。同時,使用VGG16最大的好處是大大減少了訓(xùn)練的時間,只需要對全連接層進(jìn)行訓(xùn)練。預(yù)訓(xùn)練模型的概念在大數(shù)據(jù)集上訓(xùn)練模型,并將模型的結(jié)構(gòu)和權(quán)重應(yīng)用到目前面對的問題上,這一行為被稱作“遷移學(xué)習(xí)”,即將預(yù)訓(xùn)練模型“遷移”到正在面對的特定問題上。在解決目前面對的問題的時候需要匹配好對應(yīng)的預(yù)訓(xùn)練模型,如果問題與預(yù)訓(xùn)練模型訓(xùn)練情景有很大不同,那么模型所得到的預(yù)測結(jié)果會非常不理想,例如,把一個原本用于語音識別的模型用做用戶識別,只能得到非常差的結(jié)果。ImageNet數(shù)據(jù)集已經(jīng)被廣泛用作訓(xùn)練集,因為數(shù)據(jù)規(guī)模足夠大(120萬張圖片),有助于訓(xùn)練一般模型,ImageNet數(shù)據(jù)集的訓(xùn)練目標(biāo)是將所有的圖片準(zhǔn)確劃分到1000個分類條目下。數(shù)據(jù)集的1000個分類來源于日常生活,如動物類、家庭生活用品、交通工具等。在遷移學(xué)習(xí)中,使用ImageNet數(shù)據(jù)集訓(xùn)練的網(wǎng)絡(luò)對于數(shù)據(jù)集外的圖片也表現(xiàn)出很好的泛化能力。預(yù)訓(xùn)練模型的使用在遷移學(xué)習(xí)中,不會過多的修改預(yù)訓(xùn)練模型中的權(quán)重,而是對權(quán)重進(jìn)行微調(diào)(finetune),例如,在修改模型的過程中,通常會采用比一般訓(xùn)練模型更低的學(xué)習(xí)率。另一種使用預(yù)訓(xùn)練模型的方法是對它進(jìn)行部分的訓(xùn)練,具體做法是保持模型起始的一些層的權(quán)重不變,重新訓(xùn)練后面的層,得到新的權(quán)重,這個過程可以進(jìn)行多次嘗試。不同場景中預(yù)訓(xùn)練模型的使用如下。預(yù)訓(xùn)練模型的使用在這種場景下,因為數(shù)據(jù)與訓(xùn)練模型的訓(xùn)練數(shù)據(jù)相似度很高,因此不需要重新訓(xùn)練模型,只需要將輸出層改為符合問題情境下的結(jié)果即可。例如,手機圖片分辨場景中提到的16分類問題,只需將輸出從1000個類別改為16個類別。預(yù)訓(xùn)練模型的使用1.場景一:數(shù)據(jù)集小,數(shù)據(jù)相似度高在這種情況下,可以凍結(jié)預(yù)訓(xùn)練模型中的前k個層中的權(quán)重,然后重新訓(xùn)練后面的n-k個層,當(dāng)然最后一層也需要根據(jù)相應(yīng)的輸出格式進(jìn)行修改。因為數(shù)據(jù)的相似度不高,而新數(shù)據(jù)集的大小又不足,所以只能通過凍結(jié)預(yù)訓(xùn)練模型的前k層進(jìn)行補充。預(yù)訓(xùn)練模型的使用2.場景二:數(shù)據(jù)集小,數(shù)據(jù)相似度不高在這種情況下,因為有一個很大的數(shù)據(jù)集,所以神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程將會比較有效率,但因為實際數(shù)據(jù)與預(yù)訓(xùn)練模型的訓(xùn)練數(shù)據(jù)之間存在很大差異,采用預(yù)訓(xùn)練模型將不會是一種高效的方式。最好的方法是將預(yù)處理模型中的權(quán)重全都初始化后在新數(shù)據(jù)集的基礎(chǔ)上重新開始訓(xùn)練。預(yù)訓(xùn)練模型的使用3.場景三:數(shù)據(jù)集大,數(shù)據(jù)相似度不高在這種理想情況下,最好的方式是保持模型原有的結(jié)構(gòu)和初始權(quán)重不變,隨后在新數(shù)據(jù)集的基礎(chǔ)上重新訓(xùn)練。預(yù)訓(xùn)練模型的使用4.場景四:數(shù)據(jù)集大,數(shù)據(jù)相似度高Keras中自帶20多種常用的深度學(xué)習(xí)網(wǎng)絡(luò)預(yù)訓(xùn)練模型,這些預(yù)訓(xùn)練模型可以通過keras.application包調(diào)用,主要包含VGG(VGG16和VGG19)、ResNet、DenseNet等常用網(wǎng)絡(luò)結(jié)構(gòu)及其權(quán)重。加載預(yù)訓(xùn)練模型如以下所示。fromkeras.applications.resnet50importResNet50ResNet主要有5種變形:ResNet50、Res101、Res152、ResNet50V2、Res101V2、Res152V2。每個網(wǎng)絡(luò)都包括3個主要部分:輸入部分、輸出部分和中間卷積部分。盡管ResNet變種形式豐富,但是都遵循上述結(jié)構(gòu)特點,網(wǎng)絡(luò)之間的不同主要在于中間卷積部分的參數(shù)和個數(shù)存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論