欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

卷積神經(jīng)網(wǎng)絡的加速方法及裝置與流程

文檔序號:11920972閱讀:855來源:國知局
卷積神經(jīng)網(wǎng)絡的加速方法及裝置與流程

本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,尤其是涉及一種卷積神經(jīng)網(wǎng)絡的加速方法及裝置。



背景技術(shù):

近來,深度學習在語音分析、圖像識別和自然語言處理等相關(guān)領(lǐng)域得到了廣泛應用。卷積神經(jīng)網(wǎng)絡(CNN,Convolutional Neural Network)是深度學習的一個重要分支,已成為當前語音分析和圖像識別領(lǐng)域的研究熱點。CNN由于其超強的特征提取能力以及端到端的全局優(yōu)化能力,使得視覺目標檢測、分類識別等的精度大幅提升。

CNN是為識別二維形狀而特殊設計的一個多層感知器,這種網(wǎng)絡結(jié)構(gòu)對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。CNN包括多層卷積層和池化層,在CNN實際生產(chǎn)應用中一般分為模型訓練和模型預測兩個階段。模型訓練過程是基于大規(guī)模的含有人工標注信息的數(shù)據(jù)集,對網(wǎng)絡參數(shù)進行學習和調(diào)整,具體如下:CNN接收輸入的數(shù)據(jù)集,經(jīng)過多層卷積層和池化層分別進行卷積運算和降維運算,從而提取該數(shù)據(jù)集的特征;然后對輸入的給定訓練數(shù)據(jù)集,計算輸出值,并與期望值比較,若有誤差則反向調(diào)整參數(shù),使模型的準確率更高;經(jīng)過多次提取特征和反向調(diào)整參數(shù)獲得的最優(yōu)參數(shù)組合即為訓練模型。模型預測是依據(jù)訓練模型對輸入數(shù)據(jù)進行運算,確定分類或識別結(jié)果,模型預測過程與模型訓練過程較為類似。

綜上可知,CNN在模型預測過程中,需要進行大量的卷積運算和降維運算,因而CNN的運行速度慢,難以執(zhí)行實時性要求較高的任務。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供一種卷積神經(jīng)網(wǎng)絡的加速方法及裝置,以解決現(xiàn)有技術(shù)中存在的CNN運行速度慢,難以執(zhí)行實時性要求較高的任務的技術(shù)問題。

第一方面,本發(fā)明實施例提供了一種卷積神經(jīng)網(wǎng)絡的加速方法,所述方法包括:在卷積神經(jīng)網(wǎng)絡中設置半停模塊;在所述卷積神經(jīng)網(wǎng)絡的預測過程中,當執(zhí)行至所述半停模塊時,計算所述預測過程當前的預測結(jié)果;判斷當前的所述預測結(jié)果是否滿足預設預測要求;當當前的所述預測結(jié)果滿足所述預設預測要求時,停止所述預測過程,并將當前的所述預測結(jié)果作為所述卷積神經(jīng)網(wǎng)絡的最終預測結(jié)果,否則,繼續(xù)執(zhí)行所述預測過程。

結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中,計算所述預測過程當前的預測結(jié)果,包括:確定所述半停模塊的上一運算層,根據(jù)所述上一運算層的輸出結(jié)果和所述卷積神經(jīng)網(wǎng)絡的參數(shù),計算當前的所述預測結(jié)果。

結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中,所述方法還包括:在所述卷積神經(jīng)網(wǎng)絡的前向傳播訓練過程中,當執(zhí)行至所述半停模塊時,計算所述前向傳播訓練過程當前的訓練結(jié)果;判斷當前的所述訓練結(jié)果是否滿足預設訓練要求;當當前的所述訓練結(jié)果滿足所述預設訓練要求時,停止所述前向傳播訓練過程,并確定前向傳播路徑,否則,繼續(xù)執(zhí)行所述前向傳播訓練過程。

結(jié)合第一方面的第二種可能的實施方式,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中,所述方法還包括:在所述卷積神經(jīng)網(wǎng)絡的反向傳播訓練過程中,確定所述前向傳播訓練過程停止時對應的第一半停模塊,以及所述前向傳播路徑中,與所述第一半停模塊相鄰的第二半停模塊;更新所述第一半停模塊和所述第二半停模塊之間的模型參數(shù)。

結(jié)合第一方面的第三種可能的實施方式,本發(fā)明實施例提供了第一方面的第四種可能的實施方式,其中,所述方法還包括:重復所述卷積神經(jīng)網(wǎng)絡的前向傳播訓練過程和反向傳播訓練過程,直至所述卷積神經(jīng)網(wǎng)絡收斂。

結(jié)合第一方面的第三種可能的實施方式,本發(fā)明實施例提供了第一方面的第五種可能的實施方式,其中,更新所述第一半停模塊和所述第二半停模塊之間的模型參數(shù),包括:計算所述第一半停模塊和所述第二半停模塊之間的每一運算層的模型參數(shù)的梯度;根據(jù)每一所述運算層的模型參數(shù)的梯度更新每一所述運算層的模型參數(shù)。

結(jié)合第一方面的第二種可能的實施方式,本發(fā)明實施例提供了第一方面的第六種可能的實施方式,其中,計算所述前向傳播訓練過程當前的訓練結(jié)果,包括:確定所述半停模塊的上一運算層,根據(jù)所述上一運算層的輸出結(jié)果和所述卷積神經(jīng)網(wǎng)絡的參數(shù),計算當前的所述訓練結(jié)果。

第二方面,本發(fā)明實施例還提供一種卷積神經(jīng)網(wǎng)絡的加速裝置,所述裝置包括:設置模塊,用于在卷積神經(jīng)網(wǎng)絡中設置半停模塊;第一計算模塊,用于在所述卷積神經(jīng)網(wǎng)絡的預測過程中,當執(zhí)行至所述半停模塊時,計算所述預測過程當前的預測結(jié)果;第一判斷模塊,用于判斷當前的所述預測結(jié)果是否滿足預設預測要求;結(jié)束控制模塊,用于當當前的所述預測結(jié)果滿足所述預設預測要求時,停止所述預測過程,并將當前的所述預測結(jié)果作為所述卷積神經(jīng)網(wǎng)絡的最終預測結(jié)果,否則,繼續(xù)執(zhí)行所述預測過程。

結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,其中,所述第一計算模塊具體用于:確定所述半停模塊的上一運算層,根據(jù)所述上一運算層的輸出結(jié)果和所述卷積神經(jīng)網(wǎng)絡的參數(shù),計算當前的所述預測結(jié)果。

結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第二種可能的實施方式,其中,所述裝置還包括:第二計算模塊,用于在所述卷積神經(jīng)網(wǎng)絡的前向傳播訓練過程中,當執(zhí)行至所述半停模塊時,計算所述前向傳播訓練過程當前的訓練結(jié)果;第二判斷模塊,用于判斷當前的所述訓練結(jié)果是否滿足預設訓練要求;中止控制模塊,用于當當前的所述訓練結(jié)果滿足所述預設訓練要求時,停止所述前向傳播訓練過程,并確定前向傳播路徑,否則,繼續(xù)執(zhí)行所述前向傳播訓練過程。

本發(fā)明實施例帶來了以下有益效果:

在本發(fā)明實施例中,在卷積神經(jīng)網(wǎng)絡中設置半停模塊,在卷積神經(jīng)網(wǎng)絡的預測過程中,當執(zhí)行至半停模塊時,計算預測過程當前的預測結(jié)果,判斷當前的預測結(jié)果是否滿足預設預測要求,當當前的預測結(jié)果滿足預設預測要求時,停止該預測過程,并將當前的預測結(jié)果作為卷積神經(jīng)網(wǎng)絡的最終預測結(jié)果,否則,繼續(xù)執(zhí)行該預測過程。通過本發(fā)明實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法及裝置,當執(zhí)行至半停模塊時,會根據(jù)當前的預測結(jié)果是否滿足預設預測要求,來控制是否停止預測過程,即控制CNN是否提前結(jié)束預測過程,從而減少CNN的冗余計算,在保證準確率的同時提升了CNN的運行速度,進而可以滿足實時性要求較高的任務的需求,解決了現(xiàn)有技術(shù)中存在的CNN的運行速度慢,難以執(zhí)行實時性要求較高的任務的問題。

本發(fā)明的其他特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。

為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。

附圖說明

為了更清楚地說明本發(fā)明具體實施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對具體實施方式或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施方式,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法的預測過程示意圖;

圖2為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的預測過程的基本結(jié)構(gòu)示意圖;

圖3為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法的前向傳播訓練過程示意圖;

圖4為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法的反向傳播訓練過程示意圖;

圖5為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的反向傳播訓練過程的基本結(jié)構(gòu)示意圖;

圖6為本發(fā)明第二實施例提供的卷積神經(jīng)網(wǎng)絡的加速裝置中預測過程對應的模塊組成示意圖;

圖7為本發(fā)明第二實施例提供的卷積神經(jīng)網(wǎng)絡的加速裝置中前向傳播訓練過程對應的模塊組成示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

目前CNN在模型預測過程中,需要進行大量的卷積運算和降維運算,因而CNN的運行速度慢,難以執(zhí)行實時性要求較高的任務。基于此,本發(fā)明實施例提供的一種卷積神經(jīng)網(wǎng)絡的加速方法及裝置,可以解決現(xiàn)有技術(shù)中存在的CNN運行速度慢,難以執(zhí)行實時性要求較高的任務的技術(shù)問題。

為便于對本實施例進行理解,首先對本發(fā)明實施例所公開的一種卷積神經(jīng)網(wǎng)絡的加速方法進行詳細介紹。

實施例一:

圖1為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法的預測過程示意圖,如圖1所示,該方法包括以下步驟:

步驟S110,在卷積神經(jīng)網(wǎng)絡中設置半停模塊。

具體地,CNN包括多個卷積層和多個池化層等運算層,卷積層用于提取特征,池化層用于降維。本實施例中,半停模塊可以設置在CNN的任意兩個運算層之間,以提前中斷CNN的運算過程。

該半停模塊可以設置一個或多個。例如,當準確率要求不高時,由于前幾個運算層的計算結(jié)果可能已經(jīng)可以滿足要求,因此可以在前幾個運算層之間設置一個或多個半停模塊。

步驟S120,在卷積神經(jīng)網(wǎng)絡的預測過程中,當執(zhí)行至半停模塊時,計算預測過程當前的預測結(jié)果。

CNN的預測過程如下:參數(shù)初始化,使用訓練好的模型參數(shù)對CNN進行初始化。接受預測數(shù)據(jù)并進行計算,具體地,將預測數(shù)據(jù)輸入第一層進行卷積計算,得到第一層輸出,然后將第一層輸出作為第二層的輸入數(shù)據(jù)進行計算,得到第二層輸出,以此類推,將第N層輸出作為第N+1層的輸入數(shù)據(jù)進行計算,得到第N+1層輸出。

在卷積神經(jīng)網(wǎng)絡的預測過程中,當執(zhí)行至半停模塊時,也即半停模塊的上一運算層輸出計算結(jié)果時,確定半停模塊的上一運算層,根據(jù)上一運算層的輸出結(jié)果和該卷積神經(jīng)網(wǎng)絡的參數(shù),計算當前的預測結(jié)果。

圖2為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的預測過程的基本結(jié)構(gòu)示意圖,如圖2所示,CNN包括卷積層等多個運算層,半停模塊設置在兩個運算層之間,半停模塊包括計算部分、判斷部分、控制部分和輸出部分。其中,計算部分根據(jù)上一運算層的輸出結(jié)果和該卷積神經(jīng)網(wǎng)絡的參數(shù),計算當前的預測結(jié)果。

根據(jù)執(zhí)行的任務類型,計算相應的預測結(jié)果。例如,若執(zhí)行分類任務,則計算預測數(shù)據(jù)屬于各個類別的概率,預測結(jié)果為上述計算得到的多個概率中的最大值及對應的類別。若執(zhí)行語音識別任務,則預測結(jié)果為識別出的語句。若執(zhí)行圖文轉(zhuǎn)化任務,則預測結(jié)果為轉(zhuǎn)化的文字。

步驟S130,判斷當前的預測結(jié)果是否滿足預設預測要求。

半停模塊內(nèi)設置有預設預測要求,半停模塊的判斷部分判斷當前的預測結(jié)果是否滿足預設預測要求,其中,預設預測要求是根據(jù)執(zhí)行的任務類型和實際需求設置的。例如,執(zhí)行分類任務時,預設預測要求為達到概率閾值,需要判斷當前的預測結(jié)果是否達到該概率閾值。又如,執(zhí)行語音識別任務時,預設預測要求為語句達到通順度以及詞性正確率要求等,需要判斷當前識別的語句是否達到該通順度和詞性正確率的要求。

步驟S140,當當前的預測結(jié)果滿足預設預測要求時,停止該預測過程,并將當前的預測結(jié)果作為卷積神經(jīng)網(wǎng)絡的最終預測結(jié)果,否則,繼續(xù)執(zhí)行該預測過程。

若當前的預測結(jié)果滿足預設預測要求,則半停模塊的控制部分停止此次預測過程,并控制半停模塊的輸出部分將當前的預測結(jié)果作為CNN的最終預測結(jié)果輸出。若當前的預測結(jié)果不滿足預設預測要求,則半停模塊的控制部分將半停模塊當前的預測結(jié)果傳播至該半停模塊的下一運算層,在該下一運算層,將半停模塊當前的預測結(jié)果作為輸入數(shù)據(jù)進行計算,繼續(xù)向下執(zhí)行預測過程,并重復執(zhí)行步驟S120至步驟S140,直到輸出最終預測結(jié)果。以分類任務為例,概率閾值設置為0.6,若當前的預測結(jié)果為:屬于類別A且概率為0.5,則不滿足要求,繼續(xù)執(zhí)行預測過程,若當前的預測結(jié)果為:屬于類別B且概率為0.7,則滿足要求,控制部分停止此次預測過程,并控制輸出部分輸出最終預測結(jié)果:屬于類別B,概率為0.7。

將上述方法應用在一個多分類深度網(wǎng)絡中,分別在CPU(Central Processing Unit,中央處理器)和GPU(Graphics Processing Unit,圖形處理器)兩個計算平臺上,計算設置半停模塊前后的準確率和識別速度,具體對比數(shù)據(jù)如下表所示。

表1

表2

表1為兩個網(wǎng)絡深度分別為16和9的CNN的網(wǎng)絡模型設置半停模塊前后,在CPU上運行的速度、準確率及加速比的對比表,其中,在第四卷積層之后設置有一個半停模塊,半停模塊的概率閾值為0.6,計算平臺為Intel Xeon E5-2609v3,256G內(nèi)存,不使用GPU。

表2為兩個網(wǎng)絡深度分別為16和9的CNN的網(wǎng)絡模型設置半停模塊前后,在GPU上運行的速度、準確率及加速比的對比表,其中,在第四卷積層之后設置有一個半停模塊,半停模塊的概率閾值為0.6,計算平臺為Intel Xeon E5-2609v3,Tesla k80,256G內(nèi)存。

從表1和表2可以看出,無論是否采用GPU,設置半停模塊后,在保證準確率的同時,均顯著加快了CNN的運行速度,其中,在CPU上運行的加速效果比在GPU上運行的加速效果好,網(wǎng)絡深度越大,加速效果越好。

半停模塊的計算部分開銷很低,對運算速度的影響很小,實驗發(fā)現(xiàn),半停模塊可以中止超過90%的預測數(shù)據(jù)的更深層次的計算,從而加快CNN的預測速度。本發(fā)明實施例提供的方法所帶來的加速效果不局限于此次實驗數(shù)據(jù),也不局限于實驗平臺,實際的加速效果與半停模塊在CNN中的位置以及半停模塊的預設預測要求有關(guān)。

基于上述分析可知,本發(fā)明實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法具有以下有益效果:

在本發(fā)明實施例中,在卷積神經(jīng)網(wǎng)絡中設置半停模塊,在卷積神經(jīng)網(wǎng)絡的預測過程中,當執(zhí)行至半停模塊時,計算預測過程當前的預測結(jié)果,判斷當前的預測結(jié)果是否滿足預設預測要求,當當前的預測結(jié)果滿足預設預測要求時,停止該預測過程,并將當前的預測結(jié)果作為卷積神經(jīng)網(wǎng)絡的最終預測結(jié)果,否則,繼續(xù)執(zhí)行該預測過程。通過本發(fā)明實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法,當執(zhí)行至半停模塊時,會根據(jù)當前的預測結(jié)果是否滿足預設預測要求,來控制是否停止預測過程,即控制CNN是否提前結(jié)束預測過程,從而減少CNN的冗余計算,在保證準確率的同時提升了CNN的運行速度,進而可以滿足實時性要求較高的任務的需求,解決了現(xiàn)有技術(shù)中存在的CNN的運行速度慢,難以執(zhí)行實時性要求較高的任務的問題。

圖3為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法的前向傳播訓練過程示意圖,如圖3所示,考慮到前向傳播訓練過程中也存在大量的冗余計算,該方法還包括以下步驟:

步驟S210,在卷積神經(jīng)網(wǎng)絡的前向傳播訓練過程中,當執(zhí)行至半停模塊時,計算前向傳播訓練過程當前的訓練結(jié)果。

CNN的模型訓練過程包括參數(shù)初始化、前向傳播訓練過程和反向傳播訓練過程。參數(shù)初始化,可以采用隨機初始化或者使用預先訓練好的參數(shù)初始化。

CNN的前向傳播訓練過程與預測過程相似,包括:接受訓練數(shù)據(jù),訓練數(shù)據(jù)包括簡單樣本和復雜樣本,將訓練數(shù)據(jù)經(jīng)過多個運算層進行計算,當執(zhí)行至半停模塊時,確定半停模塊的上一運算層,半停模塊的計算部分根據(jù)上一運算層的輸出結(jié)果和卷積神經(jīng)網(wǎng)絡的參數(shù),計算當前的訓練結(jié)果。計算當前的訓練結(jié)果的具體過程與預測過程中計算當前的預測結(jié)果的具體過程相同,這里不再贅述。

步驟S220,判斷當前的訓練結(jié)果是否滿足預設訓練要求。

半停模塊內(nèi)設置有預設訓練要求,該預設訓練要求與上述預設預測要求的設置方法相同,步驟S220的具體執(zhí)行過程與步驟S130相同,這里不再贅述。

步驟S230,當當前的訓練結(jié)果滿足預設訓練要求時,停止該前向傳播訓練過程,并確定前向傳播路徑,否則,繼續(xù)執(zhí)行該前向傳播訓練過程。

步驟230的具體執(zhí)行過程與步驟S140相似,當當前的訓練結(jié)果滿足預設訓練要求時,半停模塊的控制部分停止前向傳播訓練過程,確定并保存前向傳播路徑,以便進行反向傳播訓練的更新模型參數(shù)過程。當當前的訓練結(jié)果滿足預設訓練要求時,半停模塊的控制部分控制CNN繼續(xù)執(zhí)行該前向傳播訓練過程。當設置有多個半停模塊時,停止前向傳播訓練時,簡單樣本與復雜樣本對應的的半停模塊可能不同,因此不同樣本的前向傳播路徑可能不同。

在CNN的前向傳播訓練過程中,當執(zhí)行至半停模塊時,會根據(jù)當前的訓練結(jié)果是否滿足預設訓練要求,來控制是否停止前向傳播訓練過程,從而減少前向傳播訓練過程中CNN的冗余計算,因而提升了CNN的運行速度。

圖4為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法的反向傳播訓練過程示意圖,如圖4所示,考慮到反向傳播訓練過程中,復雜樣本對網(wǎng)絡參數(shù)過度調(diào)整時,不僅會降低CNN的運算速度,還會影響CNN網(wǎng)絡模型對簡單樣本的擬合能力,在步驟S230之后,該方法還包括以下步驟:

步驟S240,在卷積神經(jīng)網(wǎng)絡的反向傳播訓練過程中,確定前向傳播訓練過程停止時對應的第一半停模塊,以及前向傳播路徑中,與第一半停模塊相鄰的第二半停模塊。

在CNN的反向傳播訓練過程中,當上述前向傳播路徑中包含多個半停模塊時,確定前向傳播訓練過程停止時的半停模塊為第一半停模塊,與第一半停模塊相鄰的半停模塊為第二半停模塊。

步驟S250,更新第一半停模塊和第二半停模塊之間的模型參數(shù)。

該步驟包括以下兩個子步驟:

(1)計算第一半停模塊和第二半停模塊之間的每一運算層的模型參數(shù)的梯度。

(2)根據(jù)每一運算層的模型參數(shù)的梯度更新每一運算層的模型參數(shù)。

圖5為本發(fā)明第一實施例提供的卷積神經(jīng)網(wǎng)絡的反向傳播訓練過程的基本結(jié)構(gòu)示意圖,如圖5所示,前向傳播訓練過程在第一半停模塊停止,前向傳播路徑中,距離第一半停模塊最近的半停模塊為第二半停模塊。具體地,在CNN的反向傳播訓練過程中,通過梯度下降的方法,延梯度的反方向,最小化損失函數(shù),并且沿反向傳播方向更新第一半停模塊和第二半停模塊之間的模型參數(shù)。若前向傳播路徑中只有一個半停模塊,即只有前向傳播訓練過程停止時對應的第一半停模塊,則更新前向傳播路徑中的所有模型參數(shù)。由于梯度的方向指明了誤差擴大的方向,因此在更新模型參數(shù)的時候需要延梯度的反方向,從而減小模型參數(shù)引起的誤差。

在CNN的反向傳播訓練過程中,當前向傳播路徑中包含多個半停模塊時,只更新第一半停模塊和第二半停模塊之間的模型參數(shù),這樣既增強了CNN網(wǎng)絡模型對沒有在第二半停模塊停止的復雜樣本的擬合能力,又不破壞CNN網(wǎng)絡模型對在第二半停模塊之前停止的簡單樣本的擬合能力,同時提高了CNN的運算速度。

在CNN的反向傳播訓練之后,本發(fā)明實施例提供的方法還包括:重復卷積神經(jīng)網(wǎng)絡的前向傳播訓練過程和反向傳播訓練過程,直至該卷積神經(jīng)網(wǎng)絡收斂。CNN經(jīng)過若干輪迭代優(yōu)化之后,獲得的最優(yōu)網(wǎng)絡參數(shù)組合即為CNN網(wǎng)絡模型。

由于在CNN的輪迭代優(yōu)化過程中,重復進行多次前向傳播訓練過程和反向傳播訓練過程,而前向傳播訓練過程和反向傳播訓練過程均受到了半停模塊的加速效果,因此CNN的輪迭代優(yōu)化過程的運算速度得到了很大的提高。

實施例二:

圖6為本發(fā)明第二實施例提供的卷積神經(jīng)網(wǎng)絡的加速裝置中預測過程對應的模塊組成示意圖,如圖6所示,該裝置包括:設置模塊11,用于在卷積神經(jīng)網(wǎng)絡中設置半停模塊;第一計算模塊12,用于在卷積神經(jīng)網(wǎng)絡的預測過程中,當執(zhí)行至半停模塊時,計算預測過程當前的預測結(jié)果;第一判斷模塊13,用于判斷當前的預測結(jié)果是否滿足預設預測要求;結(jié)束控制模塊14,用于當當前的預測結(jié)果滿足預設預測要求時,停止該預測過程,并將當前的預測結(jié)果作為卷積神經(jīng)網(wǎng)絡的最終預測結(jié)果,否則,繼續(xù)執(zhí)行該預測過程。

其中,第一計算模塊12具體用于:確定半停模塊的上一運算層,根據(jù)上一運算層的輸出結(jié)果和卷積神經(jīng)網(wǎng)絡的參數(shù),計算當前的預測結(jié)果。

本發(fā)明實施例提供的卷積神經(jīng)網(wǎng)絡的加速裝置具有以下有益效果:

在本發(fā)明實施例中,在卷積神經(jīng)網(wǎng)絡中設置半停模塊,在卷積神經(jīng)網(wǎng)絡的預測過程中,當執(zhí)行至半停模塊時,計算預測過程當前的預測結(jié)果,判斷當前的預測結(jié)果是否滿足預設預測要求,當當前的預測結(jié)果滿足預設預測要求時,停止該預測過程,并將當前的預測結(jié)果作為卷積神經(jīng)網(wǎng)絡的最終預測結(jié)果,否則,繼續(xù)執(zhí)行該預測過程。通過本發(fā)明實施例提供的卷積神經(jīng)網(wǎng)絡的加速裝置,當執(zhí)行至半停模塊時,會根據(jù)當前的預測結(jié)果是否滿足預設預測要求,來控制是否停止預測過程,即控制CNN是否提前結(jié)束預測過程,從而減少CNN的冗余計算,在保證準確率的同時提升了CNN的運行速度,進而可以滿足實時性要求較高的任務的需求,解決了現(xiàn)有技術(shù)中存在的CNN的運行速度慢,難以執(zhí)行實時性要求較高的任務的問題。

圖7為本發(fā)明第二實施例提供的卷積神經(jīng)網(wǎng)絡的加速裝置中前向傳播訓練過程對應的模塊組成示意圖,如圖7所示,考慮到前向傳播訓練過程中也存在大量的冗余計算,該裝置還包括:第二計算模塊21,用于在卷積神經(jīng)網(wǎng)絡的前向傳播訓練過程中,當執(zhí)行至半停模塊時,計算前向傳播訓練過程當前的訓練結(jié)果;第二判斷模塊22,用于判斷當前的訓練結(jié)果是否滿足預設訓練要求;中止控制模塊23,用于當當前的訓練結(jié)果滿足預設訓練要求時,停止前向傳播訓練過程,并確定前向傳播路徑,否則,繼續(xù)執(zhí)行前向傳播訓練過程。

其中,第二計算模塊21具體用于:確定半停模塊的上一運算層,根據(jù)上一運算層的輸出結(jié)果和卷積神經(jīng)網(wǎng)絡的參數(shù),計算當前的訓練結(jié)果。

本發(fā)明實施例提供的裝置還包括:確定模塊,用于在卷積神經(jīng)網(wǎng)絡的反向傳播訓練過程中,確定前向傳播訓練過程停止時對應的第一半停模塊,以及前向傳播路徑中,與第一半停模塊相鄰的第二半停模塊;參數(shù)更新模塊,用于更新第一半停模塊和第二半停模塊之間的模型參數(shù)。

其中,參數(shù)更新模塊包括:梯度計算單元,用于計算第一半停模塊和第二半停模塊之間的每一運算層的模型參數(shù)的梯度;參數(shù)更新單元,用于根據(jù)每一運算層的模型參數(shù)的梯度更新每一運算層的模型參數(shù)。

本發(fā)明實施例提供的裝置還包括重復傳播控制模塊,用于重復卷積神經(jīng)網(wǎng)絡的前向傳播訓練過程和反向傳播訓練過程,直至該卷積神經(jīng)網(wǎng)絡收斂。

本發(fā)明實施例提供的卷積神經(jīng)網(wǎng)絡的加速裝置,與上述實施例提供的卷積神經(jīng)網(wǎng)絡的加速方法具有相同的技術(shù)特征,所以也能解決相同的技術(shù)問題,達到相同的技術(shù)效果。

本發(fā)明實施例所提供的卷積神經(jīng)網(wǎng)絡的加速方法及裝置的計算機程序產(chǎn)品,包括存儲了程序代碼的計算機可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實施例中所述的方法,具體實現(xiàn)可參見方法實施例,在此不再贅述。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。

另外,在本發(fā)明實施例的描述中,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。

所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

在本發(fā)明的描述中,需要說明的是,術(shù)語“中心”、“上”、“下”、“左”、“右”、“豎直”、“水平”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。此外,術(shù)語“第一”、“第二”、“第三”僅用于描述目的,而不能理解為指示或暗示相對重要性。

最后應說明的是:以上所述實施例,僅為本發(fā)明的具體實施方式,用以說明本發(fā)明的技術(shù)方案,而非對其限制,本發(fā)明的保護范圍并不局限于此,盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對前述實施例所記載的技術(shù)方案進行修改或可輕易想到變化,或者對其中部分技術(shù)特征進行等同替換;而這些修改、變化或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明實施例技術(shù)方案的精神和范圍,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權(quán)利要求的保護范圍為準。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
泰和县| 平谷区| 绥江县| 图片| 天门市| 东港市| 什邡市| 新余市| 涟源市| 陕西省| 枝江市| 桃江县| 濮阳市| 英山县| 沁水县| 陇川县| 五华县| 剑河县| 镇平县| 鞍山市| 乐昌市| 潮州市| 泗水县| 喜德县| 疏附县| 青铜峡市| 庄河市| 延边| 沙雅县| 新兴县| 余姚市| 林周县| 景德镇市| 锡林郭勒盟| 固原市| 吴堡县| 罗山县| 厦门市| 长宁区| 安溪县| 镇雄县|