專利名稱:一種反向傳播神經(jīng)網(wǎng)絡(luò)dnn的訓(xùn)練系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及反向傳播神經(jīng)網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)。
背景技術(shù):
反向傳播神經(jīng)網(wǎng)絡(luò)(即DNN)被廣泛應(yīng)用在很多重要的互聯(lián)網(wǎng)應(yīng)用,如語音識別,圖像識別,自然語言處理等。它能大幅度提高語音識別的精度,因此被廣泛用在很多公司的語首識別廣品中。DNN訓(xùn)練計算有兩個特點(diǎn):計算復(fù)雜度高和不能大規(guī)模并行。DNN訓(xùn)練的計算主要是浮點(diǎn)類型的矩陣的乘法,計算復(fù)雜度是O (N3),屬于典型的計算密集型。DNN訓(xùn)練計算由于算法的限制不能大規(guī)模并行,因此不能采用傳統(tǒng)的多服務(wù)器的方法提高計算速度。采用GPU加速DNN訓(xùn)練是一直常用的加速方法,本發(fā)明提出一直采用4GPU進(jìn)行加速的方案,該方案能比單GPU加速3.3倍。如圖1所示,示出了一種目前的DNN的結(jié)構(gòu)。包括輸入層,數(shù)個中間層和輸出層。各層的節(jié)點(diǎn)數(shù)一般是幾百到幾萬不等,層以層之間是全連接的網(wǎng)絡(luò)。DNN的訓(xùn)練計算是一層算完再期待下一層,層與層之間不能并行,所以該算法不適合大規(guī)模集群并行加速。一般一次DNN訓(xùn)練可以用以下幾個階段表示:前向計算O、反向誤差計算E,最后是根據(jù)前向計算和反向誤差計算的結(jié)果更新每層的權(quán)重W。前向計算過程是從輸入層向后一直算到輸出層,計算是串行的,例如第一次算完才能開始第二層的計算。反向計算過程是從輸出層向前一直算到第一層,計算也是串行的,例如最后一層算完才能開始算倒數(shù)第一層。更新權(quán)值計算依賴前向計算和誤差計算的結(jié)果,更新權(quán)值的計算沒有層與層的依賴關(guān)系。每次輸入只是一小段的訓(xùn)練數(shù)據(jù),稱為一個batch,一個batch完成一次訓(xùn)練,也就是說得到一個新的權(quán)值后,會用這個權(quán)值及新輸入的下一個batch進(jìn)行訓(xùn)練,得到更新的一個權(quán)值,知道所有的輸入計算完畢。這個過程稱為一輪,一般一個完整的訓(xùn)練需要10 20輪。Batch不能太大,否則會影響訓(xùn)練精度,這也影響了訓(xùn)練的多機(jī)并行化。DNN由信息的正向傳播和誤差的反向傳播兩個過程組成。輸入層負(fù)責(zé)接收來自外界的輸入信息,并傳遞給中間層;隱層是內(nèi)部信息處理層,負(fù)責(zé)信息變換,根據(jù)信息變化能力的需求,隱層可以設(shè)計為單隱層或者多隱層結(jié)構(gòu);最后一個隱層傳遞到輸出層的信息經(jīng)進(jìn)一步處理后,完成一次學(xué)習(xí)的正向傳播處理過程,由輸出層向外界輸出信息處理結(jié)果。當(dāng)實(shí)際輸出與期望輸出不符時,進(jìn)入誤差的反向傳播階段。誤差通過輸出層,按誤差梯度下降的方式修正各層權(quán)值,向隱層、輸入層逐層反傳。DNN訓(xùn)練過程是周而復(fù)始的信息正向傳播和誤差反向傳播過程,是各層權(quán)值不斷調(diào)整的過程,也是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練的過程,此過程一直進(jìn)行到網(wǎng)絡(luò)輸出的誤差減少到可以接受的程度,或者預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止。DNN學(xué)習(xí)訓(xùn)練的復(fù)雜程度,與DNN的規(guī)模和訓(xùn)練的數(shù)據(jù)規(guī)模有關(guān)。越大規(guī)模的DNN上各層權(quán)值收斂越慢,就需要的訓(xùn)練次數(shù)非常多。而一般越多的訓(xùn)練數(shù)據(jù)就能讓DNN權(quán)值越穩(wěn)定,DNN的訓(xùn)練效果也會越好,因此對于工業(yè)使用的DNN前期訓(xùn)練的數(shù)據(jù)量可能非常之大。由于DNN訓(xùn)練計算量非常大,并且訓(xùn)練過程中數(shù)據(jù)前后依賴關(guān)系較強(qiáng),無法做粗粒度的并行化,因此單機(jī)上的CPU已經(jīng)無法在合理的時間內(nèi)完成DNN的訓(xùn)練。隨著GPU計算的通用化,利用GPU進(jìn)行DNN訓(xùn)練已經(jīng)成為一個有效的加速手段。但隨著DNN規(guī)模的增大,單GPU也已經(jīng)無法滿足需要,因此多GPU上的DNN訓(xùn)練成為研究熱點(diǎn)。目前普通的多GPU的訓(xùn)練算法一般是每塊卡上都保存一個BPNN,初始權(quán)重相同,每次訓(xùn)練都將輸入數(shù)據(jù)分為多份,每塊卡同時進(jìn)行一份數(shù)據(jù)的前向計算、反向誤差計算和權(quán)重更新計算;由于每塊卡都只算了一部分?jǐn)?shù)據(jù),因此最后需要權(quán)重同步和計算才能獲得最終新的權(quán)重值。在每塊卡獲得一致的新權(quán)重值后,才可以進(jìn)入下一次計算。然而上述方法存在以下缺點(diǎn):數(shù)據(jù)同步開銷較大。在普通算法中,每次計算都需要一次權(quán)重同步。大規(guī)模BPNN的權(quán)重數(shù)據(jù)量十分龐大,可達(dá)幾百M(fèi)B。而目前多塊GPU之間使用的PC1-E2.0總線,單向傳輸帶寬在4 5GB/S,如果是4張GPU分別要同步200MB的權(quán)重數(shù)據(jù),采用分組同步的方式(GPU 1-2同步、3-4同步,1-3同步、2_4同步),則需要2輪傳輸,通信開銷會達(dá)到上百毫秒。反觀目前大規(guī)模的DNN訓(xùn)練在單塊GPU上一次計算的耗時僅為幾十毫秒,這意味著使用多卡反而比單卡訓(xùn)練更慢。
發(fā)明內(nèi)容
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一。為此,本發(fā)明的目的在于提出一種具有訓(xùn)練速度快,數(shù)據(jù)傳輸開銷低的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)。為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例提供了一種反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),包括:第一圖形處理器組,所述第一圖形處理器組用于進(jìn)行DNN前向計算和權(quán)重更新計算;第二圖形處理器組,所述第二圖形處理器組用于進(jìn)行DNN前向計算和DNN反向計算;以及控制器組,所述控制器組與所述第一圖形處理器組和第二圖形處理器組相連,所述控制器組用于控制所述第一圖形處理器組和第二圖形處理器組分別根據(jù)各自的輸入數(shù)據(jù)進(jìn)行第N層DNN前向計算,直至前向計算完成之后,所述控制器組控制所述第一圖形處理器組進(jìn)行權(quán)重更新計算,并控制所述第二圖形處理器組進(jìn)行DNN反向計算,其中,N為正整數(shù)。本發(fā)明實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)采用非對稱結(jié)構(gòu),即一部分圖形處理器(即GPU)用于計算DNN反向計算(即反向誤差計算),另一部分在一部分GPU用于計算DNN反向誤差計算的同時,進(jìn)行權(quán)重更新計算,使權(quán)重更新計算和DNN反向計算并行化,從而實(shí)現(xiàn)訓(xùn)練速度的提升,加快訓(xùn)練效率。在DNN前向計算中,DNN前向計算和計算結(jié)果傳輸?shù)牧魉?,使計算時間掩蓋了傳輸開銷,從而節(jié)省總的訓(xùn)練時間。將GPU分組,一組用于DNN反向計算,另一組用于權(quán)重更新計算,兩組可以流水操作,提高了并發(fā)度,從而加快訓(xùn)練速度??筛鶕?jù)GPU位置進(jìn)行分組,從而降低了數(shù)據(jù)在每個GPU之間傳輸開銷,降低成本且提聞傳輸速率,從而進(jìn)一步提聞總的訓(xùn)練效率。另外,根據(jù)本發(fā)明上述實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)還可以具有如下附加的技術(shù)特征:在一些不例中,還包括:第一輸入輸出路由器,所述第一輸入輸出路由器與所述控制器組相連,且所述第一輸入輸出路由器與所述第一圖形處理器組和第二圖形處理器組中的一部分圖形處理器相連;第二輸入輸出路由器,所述第二輸入輸出路由器與所述控制器組相連,且所述第二輸入輸出路由器與所述第一圖形處理器組和第二圖形處理器組中的另一部分圖形處理器相連。在一些示例中,所述控制器組,還用于在所述第一圖形處理器組和第二圖形處理器組的第N層DNN前向計算結(jié)束之后,控制所述第一圖形處理器組和第二圖形處理器組根據(jù)第N層DNN前向計算的結(jié)果進(jìn)行第N+1層DNN前向計算,同時向所述第一圖形處理器組和第二圖形處理器組的其他圖形處理器廣播所述第N層DNN前向計算的結(jié)果。在一些示例中,所述控制器組包括一個或多個控制器。在一些示例中,當(dāng)所述控制器組包括多個控制器時,所述多個控制器之間通過QPI或HT總線相互通信。在一些示例中,所述控制器組還用于在所述第二圖形處理器組進(jìn)行第N層DNN反向計算之后,將第N層DNN反向計算的計算結(jié)果廣播至所述第一圖形處理器組,以供所述第一圖形處理器組進(jìn)行權(quán)重更新計算。在一些示例中,所述第一圖形處理器組對所述第二圖形處理器組廣播的第N層DNN反向計算的計算結(jié)果進(jìn)行合并。本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:圖1是現(xiàn)有的一種反向傳播神經(jīng)網(wǎng)絡(luò)DNN的結(jié)構(gòu)示意圖;圖2是根據(jù)本發(fā)明一個實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)的結(jié)構(gòu)圖;圖3是根據(jù)本發(fā)明一個實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)的具有四個圖形處理器對數(shù)據(jù)進(jìn)行訓(xùn)練的示意圖;圖4是圖3所示的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)在前向計算過程中圖形處理器的前向計算和數(shù)據(jù)傳輸過程的示意圖;圖5是圖3所示的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)對具有8層的反向傳播神經(jīng)網(wǎng)絡(luò)DNN進(jìn)行訓(xùn)練的示意圖;以及圖6是根據(jù)本發(fā)明一個實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。在本發(fā)明的描述中,術(shù)語“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明而不是要求本發(fā)明必須以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。參照下面的描述和附圖,將清楚本發(fā)明的實(shí)施例的這些和其他方面。在這些描述和附圖中,具體公開了本發(fā)明的實(shí)施例中的一些特定實(shí)施方式,來表示實(shí)施本發(fā)明的實(shí)施例的原理的一些方式,但是應(yīng)當(dāng)理解,本發(fā)明的實(shí)施例的范圍不受此限制。相反,本發(fā)明的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。以下結(jié)合附圖描述根據(jù)本發(fā)明實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)。圖2是根據(jù)本發(fā)明一個實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)的結(jié)構(gòu)圖。如圖2所示,根據(jù)本發(fā)明一個實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)100,包括第一圖形處理器組110、第二圖形處理器組120和控制器組130。其中,第一圖形處理器組110用于進(jìn)行DNN前向計算和權(quán)重更新計算。第二圖形處理器組120用于進(jìn)行DNN前向計算(即前向計算)和DNN反向計算(即反向誤差計算)。控制器組130與第一圖形處理器組110和第二圖形處理器組120相連,控制器組130用于控制第一圖形處理器組110和第二圖形處理器組120分別根據(jù)各自的輸入數(shù)據(jù)進(jìn)行第N層DNN前向計算,直至前向計算完成之后,控制器組130控制第一圖形處理器組110進(jìn)行權(quán)重更新計算,并控制第二圖形處理器組120進(jìn)行DNN反向計算,其中,N為正整數(shù)。第一圖形處理器組110可包括一個或多個第一圖形處理器、第二圖形處理器組120可包括一個或者多個第二圖形處理器。以下以第一圖形處理器組110包括兩個第一圖形處理器(分別記為GPU2和GPU3),第二圖形處理器組120包括兩個第二圖形處理器(分別記為:GPU0和GPUl)為例進(jìn)行描述。具體地,一個深度的反向傳播神經(jīng)網(wǎng)絡(luò)DNN —般包括7層以上的網(wǎng)絡(luò),每層有2048個節(jié)點(diǎn),輸出層大致包括8000個以上的節(jié)點(diǎn),輸入向量(即輸入數(shù)據(jù))大致包括400多個元素。如圖3所示,示出了一種具有兩個第一圖形處理器(GPU2和GPU3)和兩個第二圖形處理器(GPU0和GPUl)的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)中的GPUO、GPUl以及GPU2和GPU3對數(shù)據(jù)進(jìn)行訓(xùn)練的示意圖。其中,如圖3所示,控制器組130將前向計算所用到的一段訓(xùn)練數(shù)據(jù)batch均勻分布給GPU0、GPU1、GPU2和GPU3上,即輸入數(shù)據(jù)batch被平均分成4份,四份數(shù)據(jù)分別分配給GPU0、GPU1、GPU2和GPU3,如圖3所示,每份訓(xùn)練數(shù)據(jù)為batch/4,GPU0、GPU1、GPU2和GPU3對各自的訓(xùn)練數(shù)據(jù)進(jìn)行獨(dú)立的前向計算。在前向計算過程中,每個GPU把當(dāng)前層的前向計算結(jié)果(即輸出數(shù)據(jù))廣播至其他三個GPU,即控制器組130可在第一圖形處理器組110和第二圖形處理器組120的第N層DNN前向計算結(jié)束之后,控制第一圖形處理器組110和第二圖形處理器組120根據(jù)第N層DNN前向計算的結(jié)果進(jìn)行第N+1層DNN前向計算,同時向第一圖形處理器組110和第二圖形處理器組120的其他圖形處理器廣播第N層DNN前向計算的結(jié)果。具體地,如圖4所示,示出了在前向計算過程中每個GPU的前向計算和數(shù)據(jù)傳輸過程。即當(dāng)前層的前向計算和上一次的數(shù)據(jù)傳輸并行,當(dāng)所有層的前向計算做完,啟動最后一層的輸出數(shù)據(jù)廣播到其他GPU,從而完成前向計算。在前向計算完成后,可由GPUO和GPUl進(jìn)行DNN反向計算(即反向誤差計算),由GPU2和GPU3進(jìn)行權(quán)重更新計算。具體地,控制器組130可在第二圖形處理器組120進(jìn)行第N層DNN反向計算之后,將第N層DNN反向計算的計算結(jié)果廣播至第一圖形處理器組110,以供第一圖形處理器組110進(jìn)行權(quán)重更新計算。進(jìn)一步地,第一圖形處理器組110對第二圖形處理器組120廣播的第N層DNN反向計算的計算結(jié)果進(jìn)行合并。例如,如圖5所示,假如反向傳播神經(jīng)網(wǎng)絡(luò)DNN共有8層,第二圖形處理器組120 (即第二圖形處理器組120包括圖形處理器GPUO和GPU1);第一圖形處理器組110 (即第一圖形處理器組包括圖形處理器GPU2和GPU3)。GPUO和GPUl計算各層的DNN反向計算E,其中,可使GPUO和GPUl均計算該層一半的DNN反向計算E,然后將該層所有的DNN反向計算結(jié)果傳輸給第一圖形處理器組110的GPU2和GPU3,GPU2和GPU3可將來自GPUO和GPUl的DNN反向計算結(jié)果合并成一份完整的DNN反向計算結(jié)果,然后GPU2和GPU3可根據(jù)完整的DNN反向計算結(jié)果和該層的DNN前向計算結(jié)果計算該層的權(quán)重W,其中,GPU2和GPU3也可分別計算該層的一半的權(quán)重W,接著可對兩部分權(quán)重W進(jìn)行合并,并把該層的完整的權(quán)重W廣播到GPU2和GPU3。由上可知,DNN反向計算E和權(quán)重W的計算是并行的,如圖5所示,例如第二圖形處理器組120的L7層的DNN反向計算E計算完之后,控制器組130可觸發(fā)第一圖形處理器組110進(jìn)行L7層的權(quán)重W的計算,同時控制器組130觸發(fā)第二圖形處理器組120開始對L6層進(jìn)行DNN反向計算E0如圖6所示,反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)100,還可包括第一輸入輸出路由器140和第二輸入輸出路由器150。具體地,第一輸入輸出路由器140與控制器組130相連,且第一輸入輸出路由器140與第一圖形處理器組110和第二圖形處理器組120中的一部分圖形處理器相連。第二輸入輸出路由器150與控制器組130相連,且第二輸入輸出路由器與第一圖形處理器組110和第二圖形處理器組120中的另一部分圖形處理器相連。具體地,結(jié)合圖6,GPUO和GPUl連接到第一輸入輸出路由器140 (input andoutput hub,即 Ι0Η0)上,GPU2 和 GPU3 連接到第二輸入輸出路由器 150(input and outputhub,S卩10H1)。同一個IOH上的兩個GPU相比跨IOH的GPU通信帶寬更高,延時更低。在該實(shí)例中,將GPUO和GPU2歸類為第二圖形處理器組120,GPUl和GPU3歸類為第一圖形處理器組110,這樣第二圖形處理器組120計算處理得到的DNN反向計算結(jié)果,只有一半的通信需要跨Ι0Η,另外一半可以在同一個IOH內(nèi)傳輸。同樣,第一圖形處理器組110計算出來的權(quán)重W也只有一半需要跨Ι0Η,另外一半只需要在同一個IOH內(nèi)傳輸。由于同一個IOH上的兩個GPU相比跨IOH的GPU通信帶寬更高,延時更低,因此,進(jìn)一步提高了訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練的效率。此外,控制器組130可包括一個或多個控制器。進(jìn)一步地,當(dāng)控制器組130包括多個控制器時,多個控制器之間通過QPI或HT總線相互通信。例如,如圖6所示,示出了包括兩個控制器(即CPUO和CPUl)的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)。其中,CPUO和CPUl之間可通過QPI或HT總線進(jìn)行通訊。本發(fā)明實(shí)施例的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng)具有如下優(yōu)點(diǎn):1、該訓(xùn)練系統(tǒng)采用非對稱結(jié)構(gòu),即一部分GPU用于計算DNN反向計算,另一部分在一部分GPU用于計算DNN反向計算的同時,進(jìn)行權(quán)重更新計算,使權(quán)重更新計算和DNN反向計算并行化,從而實(shí)現(xiàn)訓(xùn)練速度的提升,加快訓(xùn)練效率。 2、在DNN前向計算中,DNN前向計算和計算結(jié)果傳輸?shù)牧魉?,使計算時間掩蓋了傳輸開銷,從而節(jié)省總的訓(xùn)練時間。3、將GPU分組,一組計算DNN反向計算E,一組計算權(quán)重W,兩組可以流水操作,提高了并發(fā)度,從而加快訓(xùn)練速度。4、可根據(jù)GPU位置進(jìn)行分組,從而降低了數(shù)據(jù)在每個GPU之間傳輸開銷,降低成本且提聞傳輸速率,從而進(jìn)一步提聞總的訓(xùn)練效率。
在具體應(yīng)用中用,例如對訓(xùn)練計算量十分巨大,需要用GPU加速的語音識別的DNN的大規(guī)模的反向傳播神經(jīng)網(wǎng)絡(luò)DNN時,相比于傳統(tǒng)單卡算法和多卡算法,當(dāng)采用四個圖形處理器GPU對上述大規(guī)模的反向傳播神經(jīng)網(wǎng)絡(luò)DNN進(jìn)行訓(xùn)練時,可獲得3.3倍的加速比,因此具有訓(xùn)練效率高的優(yōu)點(diǎn)。在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,“計算機(jī)可讀介質(zhì)”可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的 裝直。計算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電 子裝置),便攜式計算機(jī)盤盒(磁裝置),隨機(jī)存取存儲器(RAM),只讀存儲器(R0M),可擦除可編輯只讀存儲器(EPR0M或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(⑶ROM)。另外,計算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^對紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲在計算機(jī)存儲器中。應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對數(shù)據(jù)信號實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。在本說明書的描述中,參考術(shù)語“一個實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個實(shí)施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實(shí)施 例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個或多個實(shí)施例或示例中以合適的方式結(jié)合。盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
權(quán)利要求
1.一種反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),其特征在于,包括: 第一圖形處理器組,所述第一圖形處理器組用于進(jìn)行DNN前向計算和權(quán)重更新計算; 第二圖形處理器組,所述第二圖形處理器組用于進(jìn)行DNN前向計算和DNN反向計算;以及 控制器組,所述控制器組與所述第一圖形處理器組和第二圖形處理器組相連,所述控制器組用于控制所述第一圖形處理器組和第二圖形處理器組分別根據(jù)各自的輸入數(shù)據(jù)進(jìn)行第N層DNN前向計算,直至前向計算完成之后,所述控制器組控制所述第一圖形處理器組進(jìn)行權(quán)重更新計算,并控制所述第二圖形處理器組進(jìn)行DNN反向計算,其中,N為正整數(shù)。
2.如權(quán)利要求1所述的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),其特征在于,還包括: 第一輸入輸出路由器,所述第一輸入輸出路由器與所述控制器組相連,且所述第一輸入輸出路由器與所述第一圖形處理器組和第二圖形處理器組中的一部分圖形處理器相連; 第二輸入輸出路由器,所述第二輸入輸出路由器與所述控制器組相連,且所述第二輸入輸出路由器與所述第一圖形處理器組和第二圖形處理器組中的另一部分圖形處理器相連。
3.如權(quán)利要求1或2所述的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),其特征在于,所述控制器組,還用于在所述第一圖形處理器組和第二圖形處理器組的第N層DNN前向計算結(jié)束之后,控制所述第一圖形處理器組和第二圖形處理器組根據(jù)第N層DNN前向計算的結(jié)果進(jìn)行第N+1層DNN前向計算,同時向所述第一圖形處理器組和第二圖形處理器組的其他圖形處理器廣播所述第N層DNN前向計算的結(jié)果。
4.如權(quán)利要求1-3任一項(xiàng)所述的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),其特征在于,所述控制器組包括一個或多個控制器。
5.如權(quán)利要求4所述的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),其特征在于,當(dāng)所述控制器組包括多個控制器時,所述多個控制器之間通過QPI或HT總線相互通信。
6.如權(quán)利要求1-3任一項(xiàng)所述的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),其特征在于,所述控制器組還用于在所述第二圖形處理器組進(jìn)行第N層DNN反向計算之后,將第N層DNN反向計算的計算結(jié)果廣播至所述第一圖形處理器組,以供所述第一圖形處理器組進(jìn)行權(quán)重更新計算。
7.如權(quán)利要求6所述的反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),其特征在于,所述第一圖形處理器組對所述第二圖形處理器組廣播的第N層DNN反向計算的計算結(jié)果進(jìn)行合并。
全文摘要
本發(fā)明提供了一種反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練系統(tǒng),包括第一圖形處理器組,用于進(jìn)行DNN前向計算和權(quán)重更新計算;第二圖形處理器組,用于進(jìn)行DNN前向計算和DNN反向計算;控制器組,用于控制第一圖形處理器組和第二圖形處理器組分別根據(jù)各自的輸入數(shù)據(jù)進(jìn)行第N層DNN前向計算,直至前向計算完成之后,控制第一圖形處理器組進(jìn)行權(quán)重更新計算,并控制第二圖形處理器組進(jìn)行DNN反向計算,其中,N為正整數(shù)。本發(fā)明的訓(xùn)練系統(tǒng)具有訓(xùn)練速度快,數(shù)據(jù)傳輸開銷低的優(yōu)點(diǎn),從而提升了反向傳播神經(jīng)網(wǎng)絡(luò)DNN的訓(xùn)練速度。
文檔編號G06N3/08GK103150596SQ201310057598
公開日2013年6月12日 申請日期2013年2月22日 優(yōu)先權(quán)日2013年2月22日
發(fā)明者歐陽劍 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司