計算機視覺-第09章1-TensorFlow和Keras基礎_第1頁
計算機視覺-第09章1-TensorFlow和Keras基礎_第2頁
計算機視覺-第09章1-TensorFlow和Keras基礎_第3頁
計算機視覺-第09章1-TensorFlow和Keras基礎_第4頁
計算機視覺-第09章1-TensorFlow和Keras基礎_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

人工智能學院人工智能視覺課程

TensorFlow和Keras基礎01項目導入02項目任務03項目目標04知識鏈接05項目準備06任務實施07任務拓展08項目小結深度學習管道2024/1/153課堂討論2024/1/154同學們用過哪些深度學習框架?深度學習框架2024/1/155谷歌基于DistBelief進行研發(fā)的第二代人工智能學習系統(tǒng)對2011年開發(fā)的深度學習基礎架構DistBelief進行了各方面的改進表達了高層次的機器學習計算大幅簡化了第一代系統(tǒng)具備更好的靈活性和可延展性可被用于語音識別或圖像識別等多項機器學習和深度學習領域TensorFlow2024/1/156Google翻譯辱華事件2024/1/157Google翻譯辱華事件2024/1/158Google翻譯辱華事件2024/1/159背后的原因就不猜測了眾說紛紜政治立場要堅定別說什么技術無國界、技術本無錯之類的祖國尊嚴不可辱祖國人民不可辱Google翻譯辱華事件2024/1/1510這幾年我國發(fā)展迅速以美國為首的一些國家頻頻對我國施壓Google之外2024/1/1511我們也可以為國做貢獻例如解決/參與解決卡脖子問題Google之外2024/1/1512其命名來源于本身的運行原理Tensor(張量)意味著N維數(shù)組Flow(流)意味著基于數(shù)據(jù)流圖的計算TensorFlow為張量從流圖的一端流動到另一端的計算過程是將復雜的數(shù)據(jù)結構傳輸至人工智能神經(jīng)網(wǎng)絡中進行分析和處理過程的系統(tǒng)TensorFlow2024/1/1513是一個開放源代碼軟件庫支持異構設備分布式計算可以將計算工作部署到多種平臺(CPU、GPU、TPU)和設備(桌面設備、服務器集群、移動設備、邊緣設備等)它可在小到一部智能手機、大到數(shù)千臺數(shù)據(jù)中心服務器的各種設備上運行支持CNN、RNN和LSTM算法TensorFlow2024/1/1514深度學習框架2024/1/1515基于Python語言的深度學習框架可以方便地定義和訓練幾乎所有類型的深度學習模型最開始是為研究人員開發(fā)的,其目的在于快速實驗Keras2024/1/1516具有以下重要特性相同的代碼可以在CPU或GPU

上無縫切換運行具有用戶友好的API,便于快速開發(fā)深度學習模型的原型內(nèi)置支持卷積網(wǎng)絡(用于計算機視覺)、循環(huán)網(wǎng)絡(用于序列處理)以及二者的任意組合支持任意網(wǎng)絡架構:多輸入或多輸出模型、層共享、模型共享等基于寬松的MIT

許可證發(fā)布與所有版本的Python

都兼容已有200,000

多個用戶是機器學習競賽網(wǎng)站Kaggle

上的熱門框架Keras2024/1/1517深度學習框架2024/1/1518是一個模型級的庫,為開發(fā)深度學習模型提供了高層次的構建模塊不處理張量操作、求微分等低層次的運算依賴于一個專門的、高度優(yōu)化的張量庫來完成這些運算,這個張量庫就是Keras的后端引擎(backendengine)Keras沒有選擇與特定的后端引擎綁定,而是以模塊化的方式處理這個問題目前,Keras有三個后端實現(xiàn):TensorFlow后端、Theano后端和微軟認知工具包(CNTK,Microsoftcognitivetoolkit)后端Keras2024/1/1519項目導入2024/1/1520知識問答2024/1/1521TensorFlow和Keras都可以被用來獨立訓練深度學習模型嗎?01項目導入02項目任務03項目目標04知識鏈接05項目準備06任務實施07任務拓展08項目小結本章的項目任務是對貓狗圖像進行分類我們將使用Kaggle貓狗數(shù)據(jù)集從零開始搭建一個神經(jīng)網(wǎng)絡模型,然后使用該模型對貓狗圖片進行分類Kaggle貓狗數(shù)據(jù)集包含25000張貓和狗的圖片下載需要注冊Kaggle賬號/c/dogs-vs-cats/data項目任務2024/1/1523項目任務2024/1/1524項目任務2024/1/152501項目導入02項目任務03項目目標04知識鏈接05項目準備06任務實施07任務拓展08項目小結知識目標TensorFlow的基本概念TensorFlow體系結構TensorFlow代碼結構TensorFlow主要API及其使用方法Keras的基本概念Keras體系結構Keras代碼結構Keras主要API及其使用方法項目目標2024/1/1527技能目標能夠基于TensorFlow、Keras完成數(shù)據(jù)預處理能夠基于TensorFlow、Keras完成模型構建能夠基于TensorFlow、Keras完成模型訓練、模型評價和模型保存能夠基于TensorFlow、Keras完成模型評價結果可視化能夠基于TensorFlow、Keras完成模型使用項目目標2024/1/1528職業(yè)素養(yǎng)目標培養(yǎng)學生嚴謹、細致、規(guī)范的職業(yè)素質培養(yǎng)學生團隊協(xié)作、表達溝通能力培養(yǎng)學生跟蹤新技術、創(chuàng)新設計能力培養(yǎng)學生的技術標準意識、操作規(guī)范意識、服務質量意識等項目目標2024/1/152901項目導入02項目任務03項目目標04知識鏈接05項目準備06任務實施07任務拓展08項目小結圖像數(shù)據(jù)預處理步驟讀取圖像文件將圖像文件解碼為RGB像素網(wǎng)格將RGB像素網(wǎng)格轉化為浮點型張量將浮點型張量的值從0-255縮放至0-1的區(qū)間知識鏈接-圖像預處理和數(shù)據(jù)增強2024/1/1531為什么在深度學習中,我們一般要將圖像的像素值從0-255縮放至0-1的區(qū)間?知識問答2024/1/1532數(shù)據(jù)增強是從現(xiàn)有的訓練樣本中通過隨機變換生成新的訓練數(shù)據(jù)如裁剪、平移、旋轉、模糊模型在訓練時不會兩次看到同樣的圖像(但仍然高度相關)使得模型可以學習數(shù)據(jù)更多的內(nèi)容,以提高泛化能力知識鏈接-圖像預處理和數(shù)據(jù)增強2024/1/1533Keras通過keras.preprocessing.image模塊的ImageDataGenerator類實現(xiàn)圖像預處理按批次循環(huán)地生成圖像數(shù)據(jù),支持實時數(shù)據(jù)增強在訓練時可以無限生成數(shù)據(jù),直到達到訓練設定的迭代次數(shù)為止本項目使用了該類的flow_from_directory方法flow_from_directory方法用于生成增強后的批次數(shù)據(jù)知識鏈接-ImageDataGenerator類2024/1/1534判斷以下說法是否正確用圖中這個數(shù)據(jù)增強,會把原來的圖片替換成經(jīng)歷過數(shù)據(jù)增強的圖片,然后由于丟失了原圖,只有數(shù)據(jù)增強后的圖片,這樣訓練出來的模型會比不進行數(shù)據(jù)增強訓練出來的模型差很多知識問答2024/1/1535判斷以下說法是否正確200張圖片作為訓練集,對其進行數(shù)據(jù)增強之后我還是只有200張,不過這些是新圖。用這200張的新圖作為訓練集和不進行數(shù)據(jù)增強的原圖作為訓練集,模型訓練出來的性能有很大不同知識問答2024/1/1536Keras內(nèi)置了多種優(yōu)化器優(yōu)化器是使用損失梯度更新參數(shù)的具體方式本項目使用了RMSprop優(yōu)化器和Adam優(yōu)化器其他優(yōu)化器還包括SGD優(yōu)化器、Adagrad優(yōu)化器、Adadelta優(yōu)化器等知識鏈接-優(yōu)化器2024/1/1537知識鏈接-RMSprop類2024/1/1538RMSprop類實現(xiàn)RMSprop優(yōu)化器通常情況下只修改學習率(lr)保持其他參數(shù)(rho、epsilon、decay)為默認值rho是RMSprop算法中的衰減因子epsilon是模糊因子decay是每次更新時控制學習率衰減的因子知識鏈接-RMSprop類2024/1/1539知識鏈接-Adam類2024/1/1540Adam類實現(xiàn)Adam優(yōu)化器lr、epsilon、decay參數(shù)與RMSprop中對應參數(shù)的含義相同beta_1為一階矩估計的指數(shù)衰減率beta_2為二階矩估計的指數(shù)衰減率amsgrad為是否應用“OntheConvergenceofAdamandBeyond”論文中定義的AMSGrad變量知識鏈接-Adam類2024/1/1541知識鏈接-NetWork類和Model類2024/1/1542NetWork類用于構建模型各個層的有向無環(huán)圖是模型的拓撲表示知識鏈接-NetWork類2024/1/1543Model類用于將訓練和評價的邏輯加入NetWork類keras.models.Model實例化需要兩個參數(shù):一個輸入張量(或張量列表)和一個輸出張量(或張量列表)其返回值是一個Keras模型該類允許模型有多個輸出知識鏈接-Model類2024/1/1544本項目使用了Model類的compile方法、fit_generator方法、evaluate_generator方法和predict方法compile方法用于編譯模型fit_generator方法用于訓練模型evaluate_generator方法用于評價模型predict方法用于使用模型生成對輸入的預測(如新圖片的分類)知識鏈接-Model類2024/1/1545知識鏈接-以fit_generator方法為例2024/1/1546fit_generator方法generator參數(shù):Python

生成器,可以不停地生成輸入和目標組成的批量steps_per_epoch

參數(shù):從生成器中抽取steps_per_epoch

個批量后(即運行了steps_per_epoch

次梯度下降),擬合過程將進入下一個輪次validation_data

參數(shù):可以是一個數(shù)據(jù)生成器,也可以是NumPy

數(shù)組組成的元組。知識鏈接-以fit_generator方法為例2024/1/1547fit_generator方法如果向validation_data

傳入一個生成器那么這個生成器能夠不停地生成驗證數(shù)據(jù)批量因此還需要指定validation_steps

參數(shù)說明需要從驗證生成器中抽取多少個批次用于評估知識鏈接-以fit_generator方法為例2024/1/1548知識鏈接-Sequential類2024/1/1549Sequential類用于線性地構建模型本項目使用了Sequential類的add方法,用于在模型層的棧頂增加一個新層的實例第一層接收輸入形狀的參數(shù)(input_shape)第二層及之后,程序將對輸入形狀做自動化推理知識鏈接-Sequential類2024/1/1550也可以不在第一層傳入input_shape參數(shù),則模型將在訓練或評價方法(如fit方法)中構建(延遲構建)知識鏈接-Sequential類2024/1/1551知識問答2024/1/1552運行下述代碼,會有什么結果?model=Sequential()model.add(Dense(32))model.add(Dense(32))print(model.weights)使用延遲構建的方法,在pile之前打印model.weights因為模型尚未構建,將會返回空如果需要顯示,可以使用build方法手動構建模型知識鏈接-Sequential類2024/1/1553已經(jīng)講過了Sequential類只有一個輸入只有一個輸出網(wǎng)絡是層的線性堆疊知識鏈接-Sequential類2024/1/1554多輸入怎么辦?多輸出怎么辦?子圖怎么辦?殘差怎么辦?知識鏈接-Sequential類的問題2024/1/1555可以用函數(shù)式API層與層之間任意連接編譯速度慢指定輸入層代表的變量知識鏈接-定義模型的另一種方法2024/1/1556知識鏈接-Conv2D類2024/1/1557Conv2D類用于構建2D卷積層2D卷積層構建一個卷積核對輸入進行卷積操作,然后輸出卷積后的張量如果該層是模型的第一層,建議指定input_shape參數(shù)(輸入形狀)的取值如果use_bias參數(shù)取值為“True”,則會構建一個bias向量,并加入輸出知識鏈接-Conv2D類2024/1/1558Conv2D類用于構建2D卷積層如果data_format參數(shù)的取值是“channels_first”則一個4D張量輸入的形狀為:“(batch,channels,rows,cols)”輸出的形狀為:“(batch,filters,new_rows,new_cols)”知識鏈接-Conv2D類2024/1/1559Conv2D類用于構建2D卷積層如果data_format參數(shù)的取值是“channels_last”則一個4D張量輸入的形狀為:“(batch,rows,cols,channels)”輸出的形狀為:“(batch,new_rows,new_cols,filters)”知識鏈接-Conv2D類2024/1/1560Conv2D類用于構建2D卷積層data_format的默認值取決于安裝的Keras的配置該配置文件位于“~/.keras/keras.json”如果從未設置過,其默認值為“channels_last”知識鏈接-Conv2D類2024/1/1561MaxPooling2D類用于實現(xiàn)最大池化其data_format參數(shù)與Conv2D中的用法相同知識鏈接-MaxPooling2D類2024/1/1562Flatten類用于實現(xiàn)將輸入扁平化該扁平化操作不會作用于批大小的維度如果輸入一個4D張量:“(batch,rows,cols,channels)”扁平化后的輸出為:“(batch,units)”知識鏈接-Flatten類2024/1/1563Dense類用于實現(xiàn)密集連接層(也叫全連接層)該類實現(xiàn)運算:“output=activation(dot(input,kernel)+bias)”其中activation是激活函數(shù)kernel是該層構建的一個權重矩陣bias是層構建的bias向量知識鏈接-Dense類2024/1/1564Dense類用于實現(xiàn)密集連接層(也叫全連接層)該層的輸入形狀為:“(batch_size,...,input_dim)”最常見的輸入形狀為2D的形狀:“(batch_size,input_dim)”該層的輸出形狀為:“(batch_size,...,units)”知識鏈接-Dense類2024/1/1565Dropout類用于實現(xiàn)Dropout層即訓練過程中,對于神經(jīng)網(wǎng)絡單元,按照一定的概率將其暫時從網(wǎng)絡中丟棄(使其值為0)降低過擬合知識鏈接-D

溫馨提示

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

評論

0/150

提交評論