深度學(xué)習(xí)課件:圖像類數(shù)據(jù)處理_第1頁
深度學(xué)習(xí)課件:圖像類數(shù)據(jù)處理_第2頁
深度學(xué)習(xí)課件:圖像類數(shù)據(jù)處理_第3頁
深度學(xué)習(xí)課件:圖像類數(shù)據(jù)處理_第4頁
深度學(xué)習(xí)課件:圖像類數(shù)據(jù)處理_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

§4.1二維卷積神經(jīng)網(wǎng)絡(luò)基本原理§4.2簡單卷積神經(jīng)網(wǎng)絡(luò)實例§4.3過度擬合§4.4時間優(yōu)化§4.5綜合二維卷積神經(jīng)網(wǎng)絡(luò)實例

圖像類數(shù)據(jù)處理本章將以卷積神經(jīng)網(wǎng)絡(luò)為依托,介紹相關(guān)的深度技術(shù),并將之應(yīng)用于圖像類的數(shù)據(jù)處理之中。首先介紹簡單的2維卷積神經(jīng)網(wǎng)絡(luò),并在keras上予以實現(xiàn)。然后介紹它的分類原理。最后根據(jù)我們在實踐中發(fā)現(xiàn)的問題,介紹神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法。在實踐設(shè)計深度學(xué)習(xí)模型的過程中,了解每一個設(shè)計細(xì)節(jié)的根本目的。章節(jié)概述§4.1二維卷積神經(jīng)網(wǎng)絡(luò)基本原理明確神經(jīng)網(wǎng)絡(luò)對圖像識別1)簡單神經(jīng)網(wǎng)絡(luò)是尋找相鄰數(shù)值之間的關(guān)系。,圖像中不僅僅具有數(shù)值信息(像素值),它還包括位置關(guān)系。如果僅僅是通過像素值作為輸入讓一個全連接神經(jīng)網(wǎng)絡(luò)去識別的話,輸出的結(jié)果肯定是不同的。2)參數(shù)爆炸。在全連接結(jié)構(gòu)中,每一個節(jié)點的輸入都是上一層所有節(jié)點的輸出值到該節(jié)點的綜合結(jié)果。卷積神經(jīng)網(wǎng)絡(luò)相比于全連接神經(jīng)網(wǎng)絡(luò),它不僅能夠減少對計算資源的需求,還能學(xué)習(xí)圖像中事物所包含的空間關(guān)系和特征。1)現(xiàn)以識別一張人臉來闡述利用神經(jīng)網(wǎng)絡(luò)識別圖像的思路如圖4.1。4.1.1卷積神經(jīng)網(wǎng)絡(luò)CNN的原理人腦識別圖像的過程一般是先識別輪廓,再識別不同的部件,最后識別不同部件的位置關(guān)系。這個過程即是卷積神經(jīng)網(wǎng)絡(luò)的工作過程。卷積神經(jīng)網(wǎng)絡(luò)首先提取圖像的細(xì)節(jié)特征,再識別由線條輪廓組成的圖案,最后識別圖案并輸出圖像的種類。圖4.1人臉的識別模式2)濾波器理解二維卷積的工作原理如圖4.3。局部感受野所學(xué)習(xí)到的權(quán)重矩陣我們稱之為卷積核。卷積核中每一個單獨的參數(shù)都描述了一個輸入單元與輸出單元間的交互。卷積網(wǎng)絡(luò)具有稀疏交互也叫做稀疏連接或者稀疏權(quán)重的特征。經(jīng)過卷積操作以后獲得的圖像變小了,為了解決卷積操作后維數(shù)變化這一問題,提出了補(bǔ)零策略,如圖4.2。圖4.2利用補(bǔ)零策略保持維數(shù)不變圖4.32維卷積示意圖4.1.2參數(shù)共享1)參數(shù)共享每個隱藏神經(jīng)元具有?個偏置和連接到它的局部感受野的權(quán)重。對于神經(jīng)網(wǎng)絡(luò)的同一層,我們使用相同的權(quán)重與偏置。2)神經(jīng)網(wǎng)絡(luò)的平移不變性

濾波器在一張圖像上有規(guī)律地移動,只要圖像上存在相應(yīng)特征,無論該特征出現(xiàn)在圖像上的任何位置,濾波器都可以將其提取出來。不論畫面中的星星在什么地方,只要與星星對應(yīng)的濾波器移動到了那個位置就會被激活,反之則不被激活。3)卷積與全連接對比由圖4.4可以得出:卷積在存儲需求和統(tǒng)計效率方面極大地優(yōu)于稠密矩陣的乘法運算。圖4.44.1.3池化1)池化層:目的是簡化從卷積層輸出的信息,減少模型的過擬合現(xiàn)象以及保持旋轉(zhuǎn)、平移、伸縮不變性等。2)一個典型的卷積網(wǎng)絡(luò)如圖4.5

圖4.5一次完整卷積層操作3)最大池化與平均池化在提取特征誤差來源的區(qū)別

①鄰域大小受限造成的估計值方差增大;

卷積層參數(shù)誤差造成估計均值的偏移。

4.1.4分類原理1)?個完整的卷積神經(jīng)網(wǎng)絡(luò)如圖4.62)二分類—SoftMax函數(shù)SoftMax是一種在參與其中的單元之間形成競爭的方式:Softmax輸出總和等于1,所以一個單元的值增加必然對應(yīng)著其他單元值的減少。這與被認(rèn)為存在于皮質(zhì)中相鄰神經(jīng)元間的側(cè)抑制類似。最終是希望其中一個正確的輸出接近1,其他的接近0。圖4.6卷積神經(jīng)網(wǎng)絡(luò)§4.2簡單卷積神經(jīng)網(wǎng)絡(luò)實例1)訓(xùn)練數(shù)據(jù)集MNIST過程與構(gòu)建Tensorboard圖像的數(shù)據(jù)流程圖如圖4.72)TensorFlow代碼與Keras代碼的區(qū)別TensorFlow代碼的結(jié)構(gòu)性不強(qiáng),較為冗余復(fù)雜,但靈活性強(qiáng),可以自行編寫不同的層。Keras代碼簡單清晰,條理性好,但由于強(qiáng)大的封裝而導(dǎo)致靈活性有所下降。因此對于深度學(xué)習(xí)方面的新手而言,利用Keras能夠快速進(jìn)入項目,是一個不錯的選擇。3)基于TensorFlow的Keras來實現(xiàn)對手寫體數(shù)字的識別的步驟:1導(dǎo)入所需包;2內(nèi)嵌顯示圖像;3參數(shù)定義;4定義數(shù)據(jù)集與驗證集位置;5圖像歸一化;6圖像生成(訓(xùn)練集);7圖像生成(驗證集);8構(gòu)建模型;9堆疊二維卷積層,使用64個卷積核,跨度為1×1,使用補(bǔ)零方法,輸入維度為28×28單通道灰度圖像,激活函數(shù)為ReLu,卷積核規(guī)模為2×2;10堆疊最大池化層,池化層大小為2×2;11堆疊第二次二維卷積層,使用128個卷積核,跨度為1×,使用補(bǔ)零方法,輸入維度為28×28單通道灰度圖像,激活函數(shù)為ReLu;

12全連接層,使用softmax分類;

13模型編譯,制定交叉熵代價函數(shù),優(yōu)化器為rmsprop,評估方法為識別準(zhǔn)確度;

14模型訓(xùn)練,制定輸入、輸出,批量規(guī)模。調(diào)用Tensorboard,并把訓(xùn)練歷史寫入制定的目錄log_dir;

15記錄訓(xùn)練歷史,打印歷史關(guān)鍵字,繪制訓(xùn)練過程圖像,指定圖像名稱,橫縱坐標(biāo)名稱;

16最后顯示圖像。4)單獨利用TensorFlow實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的步驟:1導(dǎo)入所需包;2始化權(quán)重函數(shù);3初始化偏置項;4定義卷積函數(shù);5定義一個2×2的最大池化層;6定義輸入變量;7定義輸出變量;8初始化權(quán)重,第一層卷積,數(shù)字32代表輸出的32個通道;9初始化偏置項;10將輸入的x轉(zhuǎn)換成一個4維向量。第2、3維對應(yīng)圖像的寬和高度,最后一維代表圖像的顏色通道數(shù);11卷積并激活第一層;12池化第一層;

13初始權(quán)重;

14初始化偏置項;

15將第一層卷積池化后的結(jié)果作為第二層卷積的輸入;

16池化第二層;

17設(shè)置全連接層的權(quán)重;

18設(shè)置全連接層的偏置;

19將第二層卷積池化后的結(jié)果,轉(zhuǎn)換成一個7×7×64的數(shù)組;20通過全連接之后并激活;

21防止過擬合;22日志輸出,每迭代100次輸出一次日志;23定義交叉熵為損失函數(shù);24最小化交叉熵;25計算準(zhǔn)確率;26下載minist的手寫數(shù)字的數(shù)據(jù)集;

§4.3過度擬合4.3.1容量、過擬合與欠擬合的基本概念1)增強(qiáng)機(jī)器學(xué)習(xí)算法效果的方法主要有:

①降低訓(xùn)練誤差;②縮小訓(xùn)練誤差和測試誤差的差距。這兩個因素對應(yīng)機(jī)器學(xué)習(xí)的兩個主要挑戰(zhàn):欠擬合(underfitting)和過擬合(overfitting)。欠擬合是指模型不能在訓(xùn)練集上獲得足夠低的誤差。而過擬合是指訓(xùn)練誤差和測試誤差之間的差距過大。通過調(diào)整模型的容量(Capacity),可以控制模型是否偏向于過擬合或者欠擬合。容量低的模型可能很難擬合訓(xùn)練集。容量高的模型可能會過擬合,也就是過度學(xué)習(xí)了訓(xùn)練集的特征。

2)比較線性、二次和六次函數(shù)擬合數(shù)據(jù)點集的效果如圖4.8。

(a)利用線性函數(shù)擬合數(shù)據(jù)將會導(dǎo)致欠擬合,無法捕捉數(shù)據(jù)中的非線性信息。(b)使二次函數(shù)擬合數(shù)據(jù),泛化得比較好,不會導(dǎo)致明顯的欠擬合或過擬合。(c)顯示了6階多項式擬合原始數(shù)據(jù)集的情況,有可能導(dǎo)致過擬合。由此可得出結(jié)論:高階多項式如果復(fù)雜到它的訓(xùn)練參數(shù)比訓(xùn)練樣本還多,雖然能夠獲得很多穿過訓(xùn)練樣本點的描述函數(shù),但難以在這些不同的函數(shù)解中選出一個具有良好泛化性的結(jié)果。

圖4.84.3.3L2正則化

4.3.4L1正則化1)L1正則化如圖4.10:L2正則化是權(quán)重衰減最常見的形式,我們還可以使用其他的方法來限制模型參數(shù)的規(guī)模,

L1正則化,它具有使特征表示更為稀疏的性質(zhì)。2)分析L1正則化的提出原理以及L1正則化的稀疏性。

圖4.10L1規(guī)范化原理通過對比L1、L2正則化的稀疏性如圖4.11我們得到下面結(jié)論:L1正則化,其約束項所對應(yīng)的頂點最優(yōu)解的坐標(biāo)為(0,w)。約束函數(shù)具有許多突出的角,目標(biāo)函數(shù)與這些角接觸的概率會遠(yuǎn)大于約束函數(shù)的其它部位。在這些角上,許多的權(quán)值為0,因此L1正則化相對于L2正則化更具有稀疏性。圖4.11L1、L2規(guī)范化稀疏性對比4.3.5Dropout1)棄權(quán)(Dropout)技術(shù)是一種計算方便,能夠提升模型泛化能力的深度學(xué)習(xí)模型的改進(jìn)方法如圖4.12。圖4.12Dropout原理,左圖為原始網(wǎng)絡(luò),右圖為經(jīng)過dropout處理后的眾多網(wǎng)絡(luò)中的一個示例

只需要將隨機(jī)選出的那些單元的輸出乘以0就可以有效地刪除這個單元,通常以將神經(jīng)元乘以掩碼的形式予以實現(xiàn)。

在訓(xùn)練過程中使用Dropout時,通常使用基于小批量數(shù)據(jù)的學(xué)習(xí)算法。Dropout前向傳播示4.13意圖。其中,深顏色的為被采樣的神經(jīng)元。本質(zhì)上講就是從原始網(wǎng)絡(luò)中隨機(jī)挑選子網(wǎng)絡(luò)。4.13Dropout前向傳播Dropout訓(xùn)練的目標(biāo)是最小化代價函數(shù)的期望,即在Dropout中所有的子模型是參數(shù)共享的進(jìn)一步從數(shù)學(xué)的角度來分析Dropout雖然到目前為止還沒有成熟的理論讓我們確定深度神經(jīng)網(wǎng)絡(luò)是否允許以某種可行的方式來簡化式如下,但是在大量的工程實踐中我們發(fā)現(xiàn)一般10~20個掩碼就可以獲得不錯的表現(xiàn)。

另一個近似全部子網(wǎng)絡(luò)的預(yù)測方法是利用所有子網(wǎng)絡(luò)預(yù)測分布的幾何平均來代替算術(shù)平均。通過幾何平均定義的非標(biāo)準(zhǔn)化概率分布。Dropout的另一個重要觀點是,可以通過評估模型中的來近似這種方法被稱為權(quán)重比例推斷規(guī)則(WeightScalingInferenceRule)Dropout的優(yōu)點:1計算方便2不會特別限制適用的模型或訓(xùn)練過程4.3.6提前終止

當(dāng)模型具有很強(qiáng)的學(xué)習(xí)能力時極有可能會過度學(xué)習(xí)訓(xùn)練集樣本。在這個時候如圖4.14所示,訓(xùn)練誤差(圖中下方的曲線)確實會隨著時間的推移逐漸降低但驗證集(圖中上方的曲線)的誤差有可能會再次上升,并且這種現(xiàn)象幾乎一定會出現(xiàn)。訓(xùn)練集驗證集圖4.14過擬合造成的損失升高提前終止算法的基本流程如圖4.15所示圖4.15提前終止算法基本流程

提前終止算法理解為是一個非常高效的超參數(shù)選擇算法,顯著的代價是訓(xùn)練期間要定期評估驗證集。

提前終止可單獨使用或與其他的正則化策略結(jié)合使用,需要評估模型在驗證集上的表現(xiàn)。為了更好地利用這些額外的評估數(shù)據(jù),我們可以在完成提前終止的首次訓(xùn)練之后,進(jìn)行額外的訓(xùn)練。

可用于額外訓(xùn)練過程的兩個基本策略。1將模型作為一個全新的空白模型,重新初始化模型全部參數(shù),然后使用所有數(shù)據(jù)再次訓(xùn)練。2先由部分?jǐn)?shù)據(jù)訓(xùn)練模型,然后再使用全部的數(shù)據(jù)繼續(xù)訓(xùn)練。提前終止正則化模型的真正機(jī)制將模型的參數(shù)空間限制在初始參數(shù)的一個鄰域之內(nèi)。提前終止算法的效果與L2正則化的效果相似如圖4.16所示,這兩種算法最大的區(qū)別在于提前終止算法從初始化參數(shù)的位置開始梯度下降,然后隨著梯度下降方向開始更新參數(shù)。

圖4.16提前終止算法與L2正則化的區(qū)別。在提前終止算法的圖中虛線代表梯度下降的軌跡,在L2正則化的圖中圓圈代表著懲罰項范圍。

提前終止需要監(jiān)控驗證集誤差,以便在空間中適當(dāng)?shù)狞c處終止軌跡變化。我們可以在Keras中實現(xiàn)提前終止。#調(diào)用EarlyStopping包fromkeras.callbacksimportEarlyStopping#監(jiān)控驗證集損失,耐心設(shè)置為2early_stopping=EarlyStopping(monitor='val_loss',patience=2)model.fit(X,y,validation_split=0.2,callbacks=[early_stopping])4.4時間優(yōu)化

在實際的工程應(yīng)用中我們不僅僅追求模型的識別能力,還追求在相同精度情況下能夠有著更低的時間成本以及計算成本。本節(jié)我們主要學(xué)習(xí)如何在優(yōu)化模型性能的同時降低模型的時間成本,節(jié)約計算資源。4.4.1交叉熵代價函數(shù)

我們希望構(gòu)造的深度學(xué)習(xí)模型當(dāng)遇到較大的錯誤時可以很快地改正錯誤,快速的更新參數(shù)。但是當(dāng)我們構(gòu)造了模型以后有時候可以發(fā)現(xiàn)這樣的現(xiàn)象,在開始的時候模型性能提升得很慢,而到了后期模型性能改善的速度突然加快了如圖4.17所示。圖4.17錯誤較大時的學(xué)習(xí)緩慢現(xiàn)象參數(shù)的更新速度是與其激活函數(shù)的梯度有關(guān)。如圖4.18所示,以sigmoid函數(shù)舉例,當(dāng)值較大時,sigmoid函數(shù)的輸出較為平緩,梯度較小,由于參數(shù)更新的速度受其影響,因此參數(shù)迭代速度較慢。這就是學(xué)習(xí)緩慢的原因所在。圖4.18sigmoid函數(shù)交叉熵代價函數(shù)圖4.19交叉熵代價函數(shù)緩解了學(xué)習(xí)緩慢的問題,在誤差較大時學(xué)習(xí)速度也較快

4.4.2批標(biāo)準(zhǔn)化epsilon為大于0的小浮點數(shù),用于防止除0錯誤;mode為整數(shù),指定規(guī)范化的模式,取0或1;momentum是指在按特征規(guī)范化時,計算數(shù)據(jù)的指數(shù)平均數(shù)和標(biāo)準(zhǔn)差時的動量;weights為初始化權(quán)重,為包含2個numpyarray的list,其shape為[(input_shape,),(input_shape)];beta_init為beta的初始化方法;gamma_init為gamma的初始化方法。還有g(shù)amma_regularizer為WeightRegularizer(如L1或L2正則化)的實例,作用在gamma向量上;beta_regularizer為WeightRegularizer的實例,作用在beta向量上。利用Keras直接實現(xiàn)批標(biāo)準(zhǔn)化的程序:keras.layers.normalization.BatchNormalization(epsilon=1e-06,mode=0,axis=-1,momentum=0.9,weights=None,beta_init='zero',gamma_init='one')4.4.3隨機(jī)梯度下降我們可以通過計算隨機(jī)選取的小批量數(shù)據(jù)的梯度來估算整體的梯度,小批量數(shù)據(jù)的梯度是整體數(shù)據(jù)梯度的無偏估計。用小批量數(shù)據(jù)的梯度估算整體的梯度,降低了對計算資源的需求,加速了學(xué)習(xí)的進(jìn)程。當(dāng)我們隨機(jī)抽取完全部的訓(xùn)練輸入后,就完成了一次訓(xùn)練迭代。這樣,我們就得到了隨機(jī)梯度下降算法的參數(shù)更新方法。圖4.20給出了SGD的算法流程。圖4.20給出了SGD的算法流程SGD算法中的另一個關(guān)鍵參數(shù)是學(xué)習(xí)率,使用固定值的學(xué)習(xí)率是可以的,但是在實踐中,有必要隨著時間的推移逐漸降低學(xué)習(xí)率。

當(dāng)我們使用批量梯度下降到極小點時,整個代價函數(shù)的真實梯度會變得很小直至為0,因此批量梯度下降可以使用固定的學(xué)習(xí)率。保證SGD收斂的一個充分條件是:且滿足:實際應(yīng)用過程中,一般學(xué)習(xí)率會線性衰減到第次迭代:4.4.4動量

梯度下降算法僅僅是令代價函數(shù)沿著梯度下降的方向不斷減小,會存在梯度下降時沿著梯度減少的方向不停振蕩的情況,也就是說代價函數(shù)的值雖然總體趨勢是減小的,但是它會反復(fù)振蕩直至最小如圖4.21所示。

圖4.21梯度下降算法的振蕩現(xiàn)象圖4.22動量梯度下降算法減緩了振蕩現(xiàn)象

箭頭的牽引方向總是指向梯度下降的方向,當(dāng)運動方向與梯度下降方向相同時,牽引速度使代價函數(shù)下降的速度加快,反之則阻礙運動如圖4.22。系數(shù)

和越大其梯度衰減的越少,這也就意味著之前梯度對現(xiàn)在方向的影響也越大。帶動量的SGD算法過程如圖4.23:圖4.23動量梯度下降算法流程

在普通的SGD算法中,梯度下降的步長僅僅是梯度的范數(shù)乘以學(xué)習(xí)率。

動量算法就是求解微分方程。求解微分方程的一個簡單數(shù)值方法是歐拉方法。微分方程表示了相應(yīng)物理量的變化趨勢。我們可以在Keras中直接實現(xiàn)含動量的梯度下降:sgd=SGD(lr=0.01,decay=1e-6,momentum=0.9,nesterov=True)pile(loss='mean_squared_error',optimizer=sgd)4.4.5Nesterov動量Nesterov動量算法是標(biāo)準(zhǔn)動量算法的一個變種。在凸批量梯度的情況下Nesterov動量改進(jìn)了額外誤差收斂率,但是在隨機(jī)梯度的情況下卻沒有改進(jìn)。關(guān)于凸優(yōu)化相關(guān)知識已經(jīng)超出了本書的范圍,這里我們不作過多的講解。具體的Nesterov動量算法流程如圖4.24所示。圖4.40Nesterov動量梯度下降算法流程

我們可以在Keras中直接實現(xiàn)含Nesterov動量梯度下降算法,它和我們上一節(jié)所講的動量梯度下降算法在一起:sgd=SGD(lr=0.01,decay=1e-6,momentum=0.9,nesterov=True)pile(loss='mean_squared_error',optimizer=sgd)當(dāng)nesterov為True時,即開啟了Nesterov動量。4.5綜合二維卷積神經(jīng)網(wǎng)絡(luò)實例

我們將實現(xiàn)一個綜合了本章所介紹的多項技術(shù)的深度學(xué)習(xí)模型,并將其應(yīng)用于一個實際的工程當(dāng)中。我們利用二維卷積神經(jīng)網(wǎng)絡(luò)去識別相對于手寫體數(shù)字來講更加復(fù)雜的圖像。

首先,我們先將數(shù)據(jù)分為訓(xùn)練集與驗證集,分為兩個文件夾train和test如圖4.25。圖4.25將數(shù)據(jù)分為訓(xùn)練集與驗證集

每個文件夾中擁有三個子文件夾,分別按類存放汽車(BUS)、花(HUA)和恐龍(KONGLONG)的圖像如圖4.26。圖4.26分別按類存放汽車、恐龍和花的圖像這里,我們利用Keras來構(gòu)建深度學(xué)習(xí)模型。#導(dǎo)入所需要的所有包importnumpyasnpimportpandasaspd%matplotlibinline#內(nèi)嵌顯示圖像importmatplotlibimportmatplotlib.pyplotaspltfromkerasimportoptimizersfromkerasimportregularizersfromkeras.modelsimportSequentialfromkeras.layersimportDense,Dropoutfromkeras.wrappers.scikit_learnimportKerasClassifierfromkeras.utilsimportnp_utilsfromsklearn.model_selectionimporttrain_test_split,KFold,cross_val_scorefromsklearn.preprocessingimportLabelEncoderfromkeras.layers.coreimportDense,Dropout,Activationfromkeras.layersimportConv2D,MaxPooling2D,GlobalAveragePooling2D,Flattenfromkeras.preprocessing.imageimportImageDataGeneratorfromkeras.callbacksimportTensorBoardfromkeras.callbacksimportEarlyStopping#預(yù)設(shè)參數(shù)img_height=28img_width=28#指定訓(xùn)練集以及驗證集的位置train_data_dir='D:\\DLsample\\train'validation_data_dir='D:\\DLsample\\test'

#圖像歸一化train_datagen=ImageDataGenerator(rescale=1./255)test_datagen=ImageDataGenerator(rescale=1./255)#圖像處理train_generator=train_datagen.flow_from_directory(train_data_dir,#訓(xùn)練集位置

target_size=(img_height,img_width),#將數(shù)據(jù)剪裁成所需大小

color_mode='grayscale',#生成灰度圖像

batch_size=10,#小批量數(shù)據(jù)為10class_mode='categorical')#返回各類型的one-hot形式image_numbers=train_generator.samplesvalidation_generator=test_datagen.flow_from_directory(validation_data_dir,#驗證集位置

target_size=(img_height,img_width),#將數(shù)據(jù)剪裁成所需大小

color_mode='grayscale',#生成灰度圖像

batch_size=10,#小批量數(shù)據(jù)為10class_mode='categorical')#返回各類型的one-hot形式#構(gòu)建模型model=Sequential()#堆疊二維卷積層model.add(Conv2D(64,2,strides=(1,1),padding='valid',input_shape=(28,28,1),activation='relu'))#堆疊最大卷積層規(guī)模為2×2model.add(MaxPooling2D(2))#第二個卷積層model.add(Conv2D(128,2,strides=(1,1),padding='valid',input_shape=(28,28,1),activation='relu'))model.add(MaxPooling2D(2))#

溫馨提示

  • 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

提交評論