TW201737202A - 類Alexnet網路的模型訓練方法和裝置 - Google Patents
類Alexnet網路的模型訓練方法和裝置 Download PDFInfo
- Publication number
- TW201737202A TW201737202A TW106105768A TW106105768A TW201737202A TW 201737202 A TW201737202 A TW 201737202A TW 106105768 A TW106105768 A TW 106105768A TW 106105768 A TW106105768 A TW 106105768A TW 201737202 A TW201737202 A TW 201737202A
- Authority
- TW
- Taiwan
- Prior art keywords
- network
- gradient value
- layer
- alexnet
- calculation
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本發明實施例提供了一種類Alexnet網路的模型訓練方法和裝置,所述方法包括:採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值;接收第二圖形處理單元GPU發送的在所述類Alexnet網路下的第三梯度值;依據所述第一梯度值和第三梯度值計算所述類Alexnet網路的第一模型參數;接收所述第二圖形處理單元GPU發送的在所述類Alexnet網路下的第四梯度值;依據所述第二梯度值和第四梯度值計算所述類Alexnet網路的第二模型參數;採用所述第一模型參數和第二模型參數訓練所述類Alexnet網路的模型,使計算和通信兩個過程分開進行,進一步使類Alexnet網路的卷積層的計算和全連接參數通信並行,有效地減少了模型訓練過程耗費的時間,提高了模型訓練的運行效率。
Description
本發明涉及資訊技術領域,特別是涉及一種類Alexnet網路的模型訓練方法和一種類Alexnet網路的模型訓練裝置。
人工智慧(Artificial Intelligence)是研究、開發用於模擬、延伸和擴展人的智慧的理論、方法、技術及應用系統的一門新的技術科學,它企圖瞭解智慧的實質,並生產出一種新的能以人類智慧相似的方式做出反應的智慧型機器,該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等。人工智慧從誕生以來,理論和技術日益成熟,應用領域也不斷擴大。近年來,深度學習(Deep Learning)直接嘗試解決抽象認知的難題,並取得了突破性的進展。深度學習引爆的這場革命,將人工智慧帶上了一個新的臺階,不僅學術意義巨大,而且實用性很強。
深度學習的動機在於建立、模擬人腦進行分析學習的神經網路,它模仿人腦的機制來解釋資料,例如圖像,聲
音和文本。通常,深度學習是通過建立相應的網路模型,採用模型訓練的方式來進行的。根據不同的學習框架建立的學習模型很是不同,例如,卷積神經網路(Convolutional neural networks,簡稱CNNs)就是一種深度的監督學習下的機器學習模型,其中,Alexnet網路又是開發者經常使用的一種經典的卷積神經網路。
如圖1所示,是一種Alexnet網路的結構示例圖。在Alexnet網路中,比較重要的兩種層類型為卷積層Convolution(即圖1中Convolution1至pool5部分)和全連接層Inner Product(即圖1中Inner Product6至loss層部分)。在Alexnet網路中進行一次模型訓練的過程可以描述如下:(1)先將資料從Data層正向傳播到Top層,此過程途中先經過卷積層部分,再經過全連接層部分;(2)在傳播到Top層後計算損失;(3)將損失從Top層依次反向傳播到Data層,並在傳播過程中計算梯度值,最後完成連接權重的更新,這一過程途中先經過全連接層部分,再經過卷積層部分。
在Alexnet網路中,無論是正向傳播過程還是反向傳播過程,卷積層部分都會擁有非常大的計算量,幾乎占了整個網路的計算時間80%以上,但卷積層需要更新的參數量卻非常小,只占整個網路參數的10%;而全連接層部分的情況則與卷積層完全相反,全連接層部分擁有整個網路90%的待更新參數,但計算時間卻只占了整個網路的
20%。
在單機多卡(即一台裝有多個圖形處理單元GPU的電腦)環境下,在進行模型訓練時,為了能夠得到無損的訓練結果,必須在每個GPU上都保持一份全量的模型,並在兩個模型上同時進行訓練。以兩卡(兩個圖形處理單元GPU)為例,可以將兩張卡分為主卡和從卡,如圖2所示,是已有技術中主卡與從卡的工作原理圖。在每一輪訓練結束後,需要將從卡上的模型計算出來的梯度值發送到主卡模型上,並由主卡在計算梯度值的平均值後更新參數,最後將主卡上最新的模型廣播發送到從卡上,才能繼續進行下一次的訓練。已有技術中一般是先對所有層計算出全部的梯度值之後,將得到的所有層的梯度值發送到主卡上求和平均並更新模型,即必須先進行全部的計算之後才能進行通信,在時間上,計算和通信具有嚴格的先後順序。
因此,按照已有技術首先計算出全連接層的梯度值,並在將全連接層的梯度值匯總到主卡上之後,再計算卷積層的梯度值,則整個過程所耗費的時間將會非常多,嚴重影響模型訓練的運行效率。
鑒於上述問題,提出了本發明實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種類Alexnet網路的模型訓練方法和相應的一種類Alexnet網
路的模型訓練裝置。
為了解決上述問題,本發明公開了一種類Alexnet網路的模型訓練方法,包括:採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值;接收第二圖形處理單元GPU發送的在所述類Alexnet網路下的第三梯度值;依據所述第一梯度值和第三梯度值計算所述類Alexnet網路的第一模型參數;接收所述第二圖形處理單元GPU發送的在所述類Alexnet網路下的第四梯度值;依據所述第二梯度值和第四梯度值計算所述類Alexnet網路的第二模型參數;採用所述第一模型參數和第二模型參數訓練所述類Alexnet網路的模型。
可選地,所述類Alexnet網路由全連接層和卷積層組成,所述採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值的步驟包括:採用第一圖形處理單元GPU計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值。
可選地,所述第一圖形處理單元GPU包括第一計算佇列,所述採用第一圖形處理單元GPU計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值的步驟包括:
採用第一計算佇列計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值。
可選地,所述第一圖形處理單元GPU還包括第一通信佇列,所述第二圖形處理單元GPU包括第二通信佇列,所述接收第二圖形處理單元GPU發送的在所述類Alexnet網路下的第三梯度值的步驟包括:採用第一通信佇列接收第二通信佇列發送的第三梯度值;所述接收所述第二圖形處理單元GPU發送的在所述類Alexnet網路下的第四梯度值的步驟包括:採用第一通信佇列接收第二通信佇列發送的第四梯度值。
可選地,所述第二圖形處理單元還包括第二計算佇列,所述第三梯度值和所述第四梯度值分別通過如下步驟獲得:採用第二計算佇列計算在所述全連接層下的第三梯度值;以及,採用第二計算佇列計算在所述卷積層下的第四梯度值。
可選地,所述依據所述第一梯度值和第三梯度值計算所述類Alexnet網路的第一模型參數的步驟包括:計算所述第一梯度值和第三梯度值的平均值,獲得所述類Alexnet網路的第一模型參數。
可選地,所述採用所述第二梯度值和第四梯度值計算
所述類Alexnet網路的第二模型參數的步驟包括:計算所述第二梯度值和第四梯度值的平均值,獲得所述類Alexnet網路的第二模型參數。
可選地,在採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值的步驟前,還包括:判斷網路是否為類Alexnet網路。
可選地,所述網路包括m個結構層,所述判斷網路是否為類Alexnet網路的步驟包括:對所述網路進行預訓練,獲得每個結構層的計算時間和參數量;根據所述計算時間和參數量,獲得所述網路的計算總時間和總參數量;按照預設傳輸順序,逐層累加所述m個結構層的計算時間,分別獲得截至第n層的計算時間之和;當所述截至第p層的計算時間之和與所述計算總時間的比值滿足第一預設條件時,累加剩餘m-p層的參數量,獲得所述剩餘m-p層的參數量之和;判斷所述剩餘m-p層的參數量之和與所述總參數量的比值是否滿足第二預設條件;若是,則將所述網路劃分為類Alexnet網路。
可選地,所述將所述網路劃分為類Alexnet網路的步驟包括:將所述網路的前p層劃分為類Alexnet網路的全連接
層;將所述剩餘m-p層劃分為類Alexnet網路的卷積層。
為了解決上述問題,本發明還公開了一種類Alexnet網路的模型訓練裝置,包括:第一計算模組,用於採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值;第一接收模組,用於接收第二圖形處理單元GPU發送的在所述類Alexnet網路下的第三梯度值;第二計算模組,用於依據所述第一梯度值和第三梯度值計算所述類Alexnet網路的第一模型參數;第二接收模組,用於接收所述第二圖形處理單元GPU發送的在所述類Alexnet網路下的第四梯度值;第三計算模組,用於依據所述第二梯度值和第四梯度值計算所述類Alexnet網路的第二模型參數;訓練模組,用於採用所述第一模型參數和第二模型參數訓練所述類Alexnet網路的模型。
可選地,所述類Alexnet網路由全連接層和卷積層組成,所述第一計算模組包括:第一計算子模組,用於採用第一圖形處理單元GPU計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值。
可選地,所述第一圖形處理單元GPU包括第一計算佇列,所述第一計算子模組包括:第一計算單元,用於採用第一計算佇列計算在所述全
連接層下的第一梯度值和在所述卷積層下的第二梯度值。
可選地,所述第一圖形處理單元GPU還包括第一通信佇列,所述第二圖形處理單元GPU包括第二通信佇列,所述第一接收模組包括:第一接收子模組,用於採用第一通信佇列接收第二通信佇列發送的第三梯度值;所述第二接收模組包括:第二接收子模組,用於採用第一通信佇列接收第二通信佇列發送的第四梯度值。
可選地,所述第二圖形處理單元還包括第二計算佇列,所述第三梯度值和所述第四梯度值分別通過如下模組獲得:第四計算模組,用於採用第二計算佇列計算在所述全連接層下的第三梯度值;以及,第五計算模組,用於採用第二計算佇列計算在所述卷積層下的第四梯度值。
可選地,所述第二計算模組包括:第一模型參數計算子模組,用於計算所述第一梯度值和第三梯度值的平均值,獲得所述類Alexnet網路的第一模型參數。
可選地,所述第三計算模組包括:第二模型參數計算子模組,用於計算所述第二梯度值和第四梯度值的平均值,獲得第二模型參數。
可選地,所述裝置還包括:
判斷模組,用於判斷網路是否為類Alexnet網路。
可選地,所述網路包括m個結構層,所述判斷模組包括:計算時間和參數量獲得子模組,用於對所述網路進行預訓練,獲得每個結構層的計算時間和參數量;計算總時間和總參數量獲得子模組,用於根據所述計算時間和參數量,獲得所述網路的計算總時間和總參數量;計算時間之和獲得子模組,用於按照預設傳輸順序,逐層累加所述m個結構層的計算時間,分別獲得截至第p層的計算時間之和;參數量之和獲得子模組,用於在所述截至第p層的計算時間之和與所述計算總時間的比值滿足第一預設條件時,累加剩餘m-p層的參數量,獲得所述剩餘m-p層的參數量之和;判斷子模組,用於判斷所述剩餘m-p層的參數量之和與所述總參數量的比值是否滿足第二預設條件;劃分子模組,用於在滿足第二預設條件時,將所述網路劃分為類Alexnet網路。
可選地,所述劃分子模組包括:全連接層劃分單元,用於將所述網路的前p層劃分為類Alexnet網路的全連接層;卷積層劃分單元,用於將所述剩餘m-p層劃分為類Alexnet網路的卷積層。
與先前技術相比,本發明實施例包括以下優點:
本發明實施例通過分別在第一圖形單元GPU(主卡)和第二圖形單元GPU(從卡)上構建出相應的計算佇列和通信佇列,採用計算佇列執行計算過程,採用通信佇列進行資料通信,使計算和通信兩個過程分開進行,並進一步使類Alexnet網路的卷積層的計算和全連接參數通信並行,有效地減少了模型訓練過程耗費的時間,提高了模型訓練的運行效率。
其次,在本發明實施例中,在採用某一網路進行模型訓練前,還可以對所述網路進行預訓練,通過對獲得時間參數進行分析,以判斷所述網路是否屬於類Alexnet網路。
301、302、303、304、305、306‧‧‧步驟
3011、3021、3031、3041、3051、5011、5012、5013、5014、5015、5016‧‧‧子步驟
801‧‧‧第一計算模組
802‧‧‧第一接收模組
803‧‧‧第二計算模組
804‧‧‧第二接收模組
805‧‧‧第三計算模組
806‧‧‧訓練模組
圖1是一種Alexnet網路的結構示例圖;圖2是已有技術中主卡與從卡的工作原理圖;圖3是本發明的一種類Alexnet網路的模型訓練方法實施例一的步驟流程圖;圖4是本發明的一種類Alexnet網路的模型訓練方法實施例一的工作原理圖;圖5是本發明的一種類Alexnet網路的模型訓練方法實施例二的步驟流程圖;圖6是本發明的一種類Alexnet網路的模型訓練方法實施例二的資料反向傳播計算時間和參數量統計圖;
圖7是本發明的判斷網路是否為類Alexnet網路的演算法流程圖;圖8是本發明的一種類Alexnet網路的模型訓練裝置實施例的結構方塊圖。
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
參照圖3,示出了本發明的一種類Alexnet網路的模型訓練方法實施例一的步驟流程圖,具體可以包括如下步驟:步驟301,採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值;在Alexnet網路中,無論是正向傳播過程還是反向傳播過程,卷積層部分都會擁有非常大的計算量,幾乎占了整個網路的計算時間80%以上,但卷積層需要更新的參數量卻非常小,只占整個網路參數的10%;而全連接層部分的情況則與卷積層完全相反,全連接層部分擁有整個網路90%的待更新參數,但計算時間卻只占了整個網路的20%。在本發明實施例中,可以將具有上述特點,並且在資料的正向傳播過程中先經過卷積層部分,然後才經過全連接層部分的網路,稱為類Alexnet網路。所述類Alexnet網路可以由全連接層和卷積層組成。
圖形處理單元GPU(Graphics Processing Unit)又稱顯示核心、視覺處理器、顯示晶片等,是一種專門在個人電腦、工作站、遊戲機和一些移動設備(如平板電腦、智慧手機等)上進行圖像運算工作的微處理器,常用於高性能計算,具有高併發處理資料的特性。在本發明實施例中,第一圖形處理單元GPU可以看做是單機多卡環境下中主卡,第二圖形處理單元GPU可以看做是單機多卡環境下中從卡。
在初始化時,主卡與從卡兩張卡必須持有相同的網路結構,因此在Start之後,主卡需要將該卡的網路結構廣播到從卡上,而從卡通過Receive Model過程接收網路結構,使得兩張卡保持一致。然後兩張卡開始執行相同的行為,目的是進行前向傳播,計算Loss值。前向傳播顧名思義就是從第一層向最後一層計算的過程。
具體地,前向傳播的過程是按照圖1中Alexnet網路中每層和每層之間的箭頭所指方向進行的。例如從Data傳播到Convolusion1,再到relu1...一直到最後的loss層。這時loss層會得出一個Loss值,該值被稱為損失值,而後一過程反向傳播能夠進行的先決條件是需要得出Loss值。對於前向傳播過程來說,先經過卷積層,後經過全連接層。
然後,進行後向傳播,先經過全連接層,後經過卷積層,並相應地計算各層的梯度值。
梯度是一個數學概念,在處理分類問題或回歸問題
時,在模型訓練的過程中,可以用損失值函數Loss來作為評估分類是否精准或者回歸是否準確。一般情況下,訓練得比較好的模型的損失值Loss都比較低,而所述Loss值又與神經網路的參數有關,如果所述參數符合應用場景的要求,那麼Loss值就會比較低。如果將網路的所有模型參數組成w向量,可以得到Loss值是與w向量有關的,通常,好的w向量能夠使Loss值降低。因此,問題可以歸結為如何尋找到好的w向量?這需要進行訓練,讓模型自己去找。模型必須找到能夠使得Loss值下降的正確的方向,而梯度這個數學量就是代表了Loss值下降的最快的方向。只要每次讓w向量按照梯度這個方向更新一步,那麼Loss值就會減少一些。這就是梯度的作用。
具體地,梯度的計算是根據Loss值關於各個w向量的偏微分求出來的,而求偏微分的過程就是在資料的反向傳播的過程中進行的。
在本發明實施例中,所述第一梯度值即為全連接層梯度,所述第二梯度值即為卷積層梯度。
因此,所述採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值的步驟具體可以包括如下子步驟:
子步驟3011,採用第一圖形處理單元GPU計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值。
通常,在GPU中可以有多個不同的操作佇列,即
CUDA流,並且該佇列中的操作可以按照添加到佇列的先後循序執行,不同流間的操作可以並存執行。CUDA是一種由NVIDIA推出的通用平行計算架構,該架構使GPU能夠解決複雜的計算問題,並使得在電腦上實現GPU程式設計成為可能。
在本發明實施例中,所述第一圖形處理單元GPU即主卡上可以包括有第一計算佇列和第一通信佇列,所述第二圖形處理單元GPU即從卡上可以包括有第二計算佇列和第二通信佇列,所述第一計算佇列、第一通信佇列、第二計算佇列和第二通信佇列均是CUDA流,其中,第一計算佇列和第二計算佇列可以用於計算,而第一通信佇列和第二通信佇列可以用於通信,以使主卡和從卡的計算和通信分開,實現並行處理。
在本發明的一種較佳實施例中,所述採用第一圖形處理單元GPU計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值的子步驟可以進一步包括:採用第一計算佇列計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值。
在具體實現中,在計算全連接層下的第一梯度值時,該過程只是反向傳播的前半部分。反向傳播的完整過程是從loss層開始(最後一層),按照箭頭相反的方向逐層傳播。例如從loss層傳播到inner produce8,再到drop7...,一直到convolution1。而計算第一梯度值的過程只是包含圖中從loss層傳播到inner product6的過程。在全連接層
相關層的反向傳播的過程中,每反向傳播一層就會對有參數的層計算出該層的梯度值(有些層不會計算出梯度,因為該層並沒有參數,比如loss層,drop層,relu層,只有inner product層才會計算出梯度)並儲存在該層中。這一過程計算出來的梯度參數會非常非常多,但是整個計算過程卻非常迅速,這是這一過程的特點。
在計算卷積層的第二梯度值時,該過程只是反向傳播的後半部分,即從pool5傳播到convolution1的過程。在卷積層相關層的反向傳播的過程中,每反向傳播一層就會對有參數的層會計算出該層的梯度(有些層不會計算出梯度,因為該層並沒有參數,比如relu層,norm層,pool層,只有convolution層才會計算出梯度)並儲存在該層中。這一過程計算出來的梯度參數會非常非常少,但是整個計算過程會非常慢,這是這一過程的特點。
步驟302,接收第二圖形處理單元GPU發送的在所述類Alexnet網路下的第三梯度值;在本發明實施例中,所述第三梯度值具體可以通過如下步驟獲得:採用第二計算佇列計算在所述全連接層下的第三梯度值。
在具體實現中,所述第二圖形處理單元GPU即從卡上的第二計算佇列計算所述全連接層下的第三梯度值的過程,與主卡上的第一計算佇列計算第一梯度值同時並行進行。
在本發明實施例中,所述接收第二圖形處理單元GPU發送的在所述類Alexnet網路下的第三梯度值的步驟具體可以包括如下子步驟:
子步驟3021,採用第一通信佇列接收第二通信佇列發送的第三梯度值。
在本發明實施例中,為了將主卡與從卡的計算與通信過程區分開,可以採用計算佇列執行相應的計算過程,採用通信佇列執行相應的資料發送與接收,因此,可以採用第一通信佇列來接收第二通信佇列發送的第三梯度值。
在具體實現中,可以利用流並行的方式,將卷積層的計算和全連接層的參數通信並存執行,即在主卡採用第一計算佇列計算所述第二梯度值時,採用第一通信佇列接收第二通信佇列發送的第三梯度值,使計算和通信的過程獲得時間上的重疊,二者互不干擾。
步驟303,依據所述第一梯度值和第三梯度值計算所述類Alexnet網路的第一模型參數;所述第一梯度值與第三梯度值分別是主卡和從卡計算的所述類Alexnet網路的全連接層的梯度,因此,當從卡的資料匯總到主卡上後,需要根據主卡和從卡的資料對全連接層的資料進行更新。
在本發明的一種較佳實施例中,所述依據所述第一梯度值和第三梯度值計算所述類Alexnet網路的第一模型參數的步驟具體可以包括如下子步驟:
子步驟3031,計算所述第一梯度值和第三梯度值的
平均值,獲得所述類Alexnet網路的第一模型參數。
所述第一模型參數即為更新後的全連接層梯度。
步驟304,接收所述第二圖形處理單元GPU發送的在所述類Alexnet網路下的第四梯度值;在本發明實施例中,所述第四梯度值具體可以通過如下步驟獲得:採用第二計算佇列計算在所述卷積層下的第四梯度值。
在具體實現中,所述第二圖形處理單元GPU即從卡上的第二計算佇列計算所述卷積層下的第四梯度值的過程,與主卡上的第一計算佇列計算第二梯度值同時並行進行。
在本發明實施例中,所述接收第二圖形處理單元GPU發送的在所述類Alexnet網路下的第四梯度值的步驟具體可以包括如下子步驟:
子步驟3041,採用第一通信佇列接收第二通信佇列發送的第四梯度值。
在本發明實施例中,為了將主卡與從卡的計算與通信過程區分開,可以採用計算佇列執行相應的計算過程,採用通信佇列執行相應的資料發送與接收,因此,可以採用第一通信佇列來接收第二通信佇列發送的第四梯度值。
步驟305,依據所述第二梯度值和第四梯度值計算所述類Alexnet網路的第二模型參數;所述第二梯度值與第四梯度值分別是主卡和從卡計算
的所述類Alexnet網路的卷積層的梯度,因此,當從卡的資料匯總到主卡上後,需要根據主卡和從卡的資料對卷積層的資料進行更新。
在本發明的一種較佳實施例中,所述依據所述第二梯度值和第四梯度值計算所述類Alexnet網路的第二模型參數的步驟具體可以包括如下子步驟:
子步驟3051,計算所述第二梯度值和第四梯度值的平均值,獲得所述類Alexnet網路的第二模型參數。
所述第二模型參數即為更新後的卷積層梯度。
步驟306,採用所述第一模型參數和第二模型參數訓練所述類Alexnet網路的模型。
在本發明實施例中,當分別獲得所述第一模型參數和第二模型參數後,主卡可以針對所述第一模型參數和第二模型參數對自身的模型參數進行更新,以獲得新的訓練模型。
在已有技術中,在Alexnet網路下進行模型訓練時,每一輪的計算均為依次進行發送/接收模型、Forward前向傳播、Backward反向傳播,接收/發送梯度值、參數更新。假設Forward前向傳播的過程時間為a,Backward反向傳播的過程中涉及到全連接層的計算時間為b,涉及到卷積層的計算時間為c,發送/接收全連接層梯度值的時間為m,發送/接收卷積層梯度值的時間為n,那麼按照已有技術完成整個過程的總時間T1為:T1=a+b+c+m+n,其中c>>b,m>>n
而採用本發明實施例的方法,利用流並行方式將反向傳播過程中,卷積層的計算和全連接參數通信並行起來後,總時間T2為:T2=a+b+max(c,m)+n
由於T1-T2=c+m-max(c,m)>0,所以:T1>T2
由上式可知,利用流並行方式將通信和計算並行來優化類Alexnet網路的方案可以有效減少整個過程耗費的時間。
在本發明實施例中,通過分別在第一圖形單元GPU(主卡)和第二圖形單元GPU(從卡)上構建出相應的計算佇列和通信佇列,採用計算佇列執行計算過程,採用通信佇列進行資料通信,使計算和通信兩個過程分開進行,並進一步使類Alexnet網路的卷積層的計算和全連接參數通信並行,有效地減少了模型訓練過程耗費的時間,提高了模型訓練的運行效率。
參照圖5,示出了本發明的一種類Alexnet網路的模型訓練方法實施例二的步驟流程圖,具體可以包括如下步驟:
步驟501,判斷網路是否為類Alexnet網路;通常,如果將網路一般化並分為兩部分,分別稱為M和N,且在反向傳播時先進行M部分計算,後進行N部分計算,那麼如果M部分的計算量佔據整個時間的很小一部分,而所有用的參數佔據所有參數量的很大一部分,並且N部分具有和M相反的特性,那麼可以將稱此種網
路看作為類Alexnet網路。
在本發明實施例中,對於包括有m個結構層的某一網路,可以首先判斷該網路是否為類Alexnet網路。
在本發明的一種較佳實施例中,所述判斷網路是否為類Alexnet網路的步驟具體可以包括如下子步驟:子步驟5011,對所述網路進行預訓練,獲得每個結構層的計算時間和參數量;子步驟5012,根據所述計算時間和參數量,獲得所述網路的計算總時間和總參數量;子步驟5013,按照預設傳輸順序,逐層累加所述m個結構層的計算時間,分別獲得截至第p層的計算時間之和;子步驟5014,當所述截至第p層的計算時間之和與所述計算總時間的比值滿足第一預設條件時,累加剩餘m-p層的參數量,獲得所述剩餘m-p層的參數量之和;子步驟5015,判斷所述剩餘m-p層的參數量之和與所述總參數量的比值是否滿足第二預設條件;在本發明實施例中,可以利用電腦去判斷當前網路是否屬於類Alexnet網路,即可以通過預訓練獲取到的時間參數進行分析。
首先,對所述網路進行預訓練,可以獲得每個結構層的計算時間和參數量;然後根據所述計算時間和參數量,能夠獲得所述網路的計算總時間和總參數量;按照預設傳輸順序(一般地,所述預設傳輸順序可以是反向傳輸方
向,即從所述網路的最後一層傳輸至第一層的過程),逐層累加所述m個結構層的計算時間,分別獲得截至第p層的計算時間之和;當所述截至第p層的計算時間之和與所述計算總時間的比值滿足第一預設條件時,累加剩餘m-p層的參數量,獲得所述剩餘m-p層的參數量之和;最後判斷所述剩餘m-n層的參數量之和與所述總參數量的比值是否滿足第二預設條件。
通常,由於Alexnet網路的特點在於計算量大的部分參數量小,而計算量小的部分參數量卻很大,因此,本領域技術人員可以據此設置第一預設條件和第二預設條件的具體數值,本發明對所述數值不作具體限定。
具體地,可以把預訓練的網路分為兩個部分,即M部分和N部分,那麼問題就可以劃歸為如何選取分割M和N的分界點。進一步地,所述分界點的選取過程可以按照如下方式進行:將該網路在訓練前進行若干次預訓練過程,並計算每次運行時每個層進行反向傳播時的計算時間和擁有的參數量。然後,將所有層的反向傳播時間累加和記為T,所有層所擁有的參數量記為V,以反向傳播的起始層為起點,不斷累加下一層的計算時間,並記為t。當t/T>0.1時停止累加,並將當前層記為第p層。將從第p層到反向傳播的最後一層所擁有的參數量總和記為v,若此時v/V<0.1,那麼可以認為此網路類型為類Alexnet網路,可以繼續執行子步驟5016,若v/V>0.1,則可以認為此網路並不是類Alexnet網路。
子步驟5016,將所述網路劃分為類Alexnet網路。
在本發明的一種較佳實施例中,所述將所述網路劃分為類Alexnet網路的子步驟可以進一步包括:將所述網路的前p層劃分為類Alexnet網路的全連接層;將所述剩餘m-p層劃分為類Alexnet網路的卷積層。
當所述網路被確認為屬於類Alexnet網路時,可以根據獲得的分解點,即子步驟5011-5015中獲得的第p層,將所述網路具體劃分為全連接層部分和卷積層部分。
參照圖6,是本發明的一種的資料反向傳播計算時間和參數量統計圖,圖中橫坐標為層數,左部分為反向傳播每一層的計算時間統計,縱坐標單位為ms,右部分為每層所擁有的的參數量,單位為位元組。從反向傳播的起始層開始到上文計算出來的第p層之間的所有層計算時間之和為整個反向傳播總時間的10%,而此時如果從第p層到反向傳播的最後一層之間的所有層所擁有的參數量之和佔據總參數量的10%左右,從而可以說明從反向傳播的第一層到第p層具有90%的參數量。進而可以認定,從反向傳播的最後一層到第p層的部分為M,即全連接層,而從第p層到反向傳播的第一層的部分為N,即卷積層部分。上述判斷過程可以通過如圖7所示的演算法流程圖表示。
步驟502,採用第一計算佇列計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值;在本發明實施例中,可以分別在第一圖形處理單元
GPU即主卡,和第二圖形處理單元GPU即從卡上分別構建出計算佇列和通信佇列。具體地,可以在主卡上構建第一計算佇列和第一通信佇列,在從卡上構建第二計算佇列和第二通信佇列,由第一計算佇列和第二計算佇列執行相應的計算過程,由第一通信佇列和第二通信佇列執行相應的通信過程,以獲得時間上的疊加。
因此,在本發明實施例中,可以採用第一計算佇列計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值。
在具體實現中,在計算全連接層下的第一梯度值時,該過程只是反向傳播的前半部分。反向傳播的完整過程是從loss層開始(最後一層),按照箭頭相反的方向逐層傳播。例如從loss層傳播到inner produce8,再到drop7...,一直到convolution1。而計算第一梯度值的過程只是包含圖中從loss層傳播到inner product6的過程。在全連接層相關層的反向傳播的過程中,每反向傳播一層就會對有參數的層計算出該層的梯度值(有些層不會計算出梯度,因為該層並沒有參數,比如loss層,drop層,relu層,只有inner product層才會計算出梯度)並儲存在該層中。這一過程計算出來的梯度參數會非常非常多,但是整個計算過程卻非常迅速,這是這一過程的特點。
在計算卷積層的第二梯度值時,該過程只是反向傳播的後半部分,即從pool5傳播到convolution1的過程。在卷積層相關層的反向傳播的過程中,每反向傳播一層就會
對有參數的層會計算出該層的梯度(有些層不會計算出梯度,因為該層並沒有參數,比如relu層,norm層,pool層,只有convolution層才會計算出梯度)並儲存在該層中。這一過程計算出來的梯度參數會非常非常少,但是整個計算過程會非常慢,這是這一過程的特點。
步驟503,採用第一通信佇列接收第二通信佇列發送的第三梯度值;在本發明實施例中,所述第三梯度值可以是通過第二圖形處理單元GPU即從卡上的第二計算佇列計算獲得的,計算第三梯度值的過程,與主卡上的第一計算佇列計算第一梯度值同時並行進行。
在本發明實施例中,由於主卡與從卡的計算與通信過程分開進行,計算佇列執行相應的計算過程,通信佇列執行相應的資料發送與接收,因此,可以採用第一通信佇列來接收第二通信佇列發送的第三梯度值。
在具體實現中,可以利用流並行的方式,將卷積層的計算和全連接層的參數通信並存執行,即在主卡採用第一計算佇列計算所述第二梯度值時,採用第一通信佇列接收第二通信佇列發送的第三梯度值,使計算和通信的過程獲得時間上的重疊,二者互不干擾。
步驟504,計算所述第一梯度值和第三梯度值的平均值,獲得所述類Alexnet網路的第一模型參數;在本發明實施例中,所述第一梯度值與第三梯度值分別是主卡和從卡計算的所述類Alexnet網路的全連接層的
梯度,因此,當從卡的資料匯總到主卡上後,需要根據主卡和從卡的資料對全連接層的資料進行更新。在具體實現中,可以將所述第一梯度值和第三梯度值相加求平均值,以獲得第一模型參數,所述第一模型參數即為更新後的全連接層梯度。
步驟505,採用第一通信佇列接收第二通信佇列發送的第四梯度值;在本發明實施例中,所述第四梯度值可以採用第二計算佇列計算獲得,然後可以採用第二通信佇列將第四梯度值發送至主卡。
在具體實現中,所述第二圖形處理單元GPU即從卡上的第二計算佇列計算所述卷積層下的第四梯度值的過程,與主卡上的第一計算佇列計算第二梯度值同時並行進行。
步驟506,計算所述第二梯度值和第四梯度值的平均值,獲得所述類Alexnet網路的第二模型參數;在具體實現中,可以將所述第二梯度值和第四梯度值相加求平均值,以獲得第二模型參數,所述第二模型參數即為更新後的卷積層梯度。
步驟507,採用所述第一模型參數和第二模型參數訓練所述類Alexnet網路的模型。
在本發明實施例中,在採用某一網路進行模型訓練前,可以對所述網路進行預訓練,通過對獲得時間參數進行分析,以判斷所述網路是否屬於類Alexnet網路。
為了便於理解,請參照圖4,下面以一個完整的示例對本發明實施例的主卡與從卡的計算和通信過程作一說明:
1、主卡的BroadCast Model和從卡的Receive Model:主卡的BroadCast Model是將主卡的模型發送到從卡上,而從卡的Receive Model是負責接收主卡的模型。這一過程是為了讓兩張卡都保留有相同的Alexnet網路結構。之所以要將梯度發送到主卡上再更新,是因為在模型訓練時只會更新主卡的模型,而不管從卡。因為在第二輪Forward開始前,需要將主卡的模型廣播到從卡上。因此,可以始終以主卡模型為基礎。
2、主卡的Forward過程和從卡的Forward過程:該過程兩張卡的行為相同,屬於前向傳播,是按照圖1中Alexnet網路中每層和每層之間的箭頭所指方向進行。例如從Data傳播到Convolusion1,再到relu1...,一直到最後的loss層。這時loss層會得出一個loss值,該值被稱為損失值,而後一過程Backward(反向傳播)能夠進行的先決條件是需要得出loss值,因此必須先進行Forward,後進行Backward。對於Forward過程來說,先經過的是卷積層相關層,後經過的是全連接層相關層。每一層的計算方式均有些區別,這是由於各層的計算公式不同所致。
3、主卡和從卡的Backward For Inner Product過程:該過程兩張卡的行為相同,該過程只是Backward完整的
前半部分。Backward完整過程是從loss層開始(即最後一層),按照圖1中箭頭相反的方向逐層傳播。例如從loss傳播到inner produce8,再到drop7...,一直到convolution1。而Backward For Inner Product過程只是包含圖1中全連接層部分的反向傳播。即從loss傳播到inner product6的過程。所以,Backward For Inner Product這一過程是全連接層相關層的反向傳播過程。在全連接層相關層的反向傳播的過程中,每反向傳播一層就會對有參數的層會計算出該層的梯度(有些層不會計算出梯度,因為該層並沒有參數,比如loss層,drop層,relu層,只有inner product層才會計算出梯度)並儲存在該層中。這一過程計算出來的梯度參數會非常非常多,但是整個計算過程卻非常迅速,這是這一過程的特點。
4、主卡和從卡的Backward For Convolution過程:該過程兩張卡的行為相同,該過程只是Backward完整的後半部分。而Backward For Convolution過程只是包含圖1中卷積層部分的反向傳播。即從pool5傳播到convolution1的過程。所以,Backward For convolution這一過程是卷積層相關層的反向傳播過程。在卷積層相關層的反向傳播的過程中,每反向傳播一層就會對有參數的層會計算出該層的梯度(有些層不會計算出梯度,因為該層並沒有參數,比如relu層,norm層,pool層,只有convolution層才會計算出梯度)並儲存在該層中。這一過程計算出來的梯度參數會非常非常少,但是整個計算過程
會非常慢,這是這一過程的特點。
5、主卡和從卡部分的第一個過程Receive inner product Gradients和Send inner product Gradients:這兩個過程是梯度的發送與接收過程。該過程在主卡上是receive過程。即接收從卡計算出來的梯度,在從卡上是send過程,即發送計算的梯度的過程。這兩個過程在各自的卡上都是跟在Backward For Innerproduct過程之後,代表該過程必須等待Backward For Innerproduct之後才能進行,但該過程是處在通信佇列中的過程,而計算過程處在計算佇列中,所以其與Backward For Convolution同時並存執行。
6、主卡和從卡部分的第二個過程Update Inner product Gradients過程:這兩個過程是更新全連接層梯度的過程。但是兩張卡的行為不一樣,主卡是對全連接層梯度取平均的過程,而從卡這個過程是個空過程,即不執行任何行為。但該過程是處在通信佇列中的過程,與Backward For Convolution同時並存執行
7、主卡和從卡部分的第三個過程Receive Convolution Gradients和Send Convolution Gradients過程:即主卡接收從卡發送的卷積層梯度參數,而從卡向主卡發送卷積層梯度參數的過程。雖然該過程處在通信佇列中,但是它與計算佇列的Backward For Convolution有依賴關係,因此這一過程必須要等待Backward For Convolution和Update Inner product Gradients完成之後才
能執行。
8、主卡和從卡的Update Convolution Gradients過程:這兩個過程是對卷積層梯度取平均的過程。但是兩張卡的行為不一樣,主卡是對卷積層梯度取平均的過程,而從卡這個過程是個空過程,即不執行任何行為。
需要說明的是,對於方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明實施例並不受所描述的動作順序的限制,因為依據本發明實施例,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於較佳實施例,所涉及的動作並不一定是本發明實施例所必須的。
參照圖8,示出了本發明的一種類Alexnet網路的模型訓練裝置實施例的結構方塊圖,具體可以包括如下模組:第一計算模組801,用於採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值;第一接收模組802,用於接收第二圖形處理單元GPU發送的在所述類Alexnet網路下的第三梯度值;第二計算模組803,用於依據所述第一梯度值和第三梯度值計算所述類Alexnet網路的第一模型參數;第二接收模組804,用於接收所述第二圖形處理單元GPU發送的在所述類Alexnet網路下的第四梯度值;第三計算模組805,用於依據所述第二梯度值和第四
梯度值計算所述類Alexnet網路的第二模型參數;訓練模組806,用於採用所述第一模型參數和第二模型參數訓練所述類Alexnet網路的模型。
在本發明實施例中,所述類Alexnet網路可以由全連接層和卷積層組成,所述第一計算模組801具體可以包括如下子模組:第一計算子模組8011,用於採用第一圖形處理單元GPU計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值。
在本發明實施例中,所述第一圖形處理單元GPU可以包括有第一計算佇列,所述第一計算子模組8011具體可以包括如下單元:第一計算單元8011A,用於採用第一計算佇列計算在所述全連接層下的第一梯度值和在所述卷積層下的第二梯度值。
在本發明實施例中,所述第一圖形處理單元GPU還可以包括有第一通信佇列,所述第二圖形處理單元GPU可以包括有第二通信佇列,所述第一接收模組802具體可以包括如下子模組:第一接收子模組8021,用於採用第一通信佇列接收第二通信佇列發送的第三梯度值;所述第二接收模組804具體可以包括如下子模組:第二接收子模組8041,用於採用第一通信佇列接收第二通信佇列發送的第四梯度值。
在本發明實施例中,所述第二圖形處理單元還可以包括有第二計算佇列,所述第三梯度值和所述第四梯度值可以分別通過如下模組獲得:第四計算模組807,用於採用第二計算佇列計算在所述全連接層下的第三梯度值;以及,第五計算模組808,用於採用第二計算佇列計算在所述卷積層下的第四梯度值。
在本發明實施例中,所述第二計算模組803具體可以包括如下子模組:第一模型參數計算子模組8031,用於計算所述第一梯度值和第三梯度值的平均值,獲得所述類Alexnet網路的第一模型參數。
在本發明實施例中,所述第三計算模組805具體可以包括如下子模組:第二模型參數計算子模組8051,用於計算所述第二梯度值和第四梯度值的平均值,獲得第二模型參數。
在本發明實施例中,所述裝置還可以包括如下模組:判斷模組808,用於判斷網路是否為類Alexnet網路。
在本發明實施例中,所述網路可以包括有m個結構層,所述判斷模組808具體可以包括如下子模組:計算時間和參數量獲得子模組8081,用於對所述網路進行預訓練,獲得每個結構層的計算時間和參數量;計算總時間和總參數量獲得子模組8082,用於根據
所述計算時間和參數量,獲得所述網路的計算總時間和總參數量;計算時間之和獲得子模組8083,用於按照預設傳輸順序,逐層累加所述m個結構層的計算時間,分別獲得截至第p層的計算時間之和;參數量之和獲得子模組8084,用於在所述截至第p層的計算時間之和與所述計算總時間的比值滿足第一預設條件時,累加剩餘m-p層的參數量,獲得所述剩餘m-p層的參數量之和;判斷子模組8085,用於判斷所述剩餘m-p層的參數量之和與所述總參數量的比值是否滿足第二預設條件;劃分子模組8086,用於在滿足第二預設條件時,將所述網路劃分為類Alexnet網路。
在本發明實施例中,所述劃分子模組8086具體可以包括如下單元:全連接層劃分單元8086A,用於將所述網路的前p層劃分為類Alexnet網路的全連接層;卷積層劃分單元8086B,用於將所述剩餘m-p層劃分為類Alexnet網路的卷積層。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個
實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本發明實施例的實施例可提供為方法、裝置、或電腦程式產品。因此,本發明實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存介質(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
在一個典型的配置中,所述電腦設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設
備訪問的資訊。按照本文中的界定,電腦可讀介質不包括非持續性的電腦可讀媒體(transitory media),如調製的資料信號和載波。
本發明實施例是參照根據本發明實施例的方法、終端設備(系統)、和電腦程式產品的流程圖和/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖和/或方塊圖中的每一流程和/或方塊、以及流程圖和/或方塊圖中的流程和/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理終端設備的處理器以產生一個機器,使得通過電腦或其他可程式設計資料處理終端設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式設計資料處理終端設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理終端設備上,使得在電腦或其他可程式設計終端設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計終端設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
儘管已描述了本發明實施例的較佳實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附申請專利範圍意欲解釋為包括較佳實施例以及落入本發明實施例範圍的所有變更和修改。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上對本發明所提供的一種類Alexnet網路的模型訓練方法和一種類Alexnet網路的模型訓練裝置,進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本
發明的限制。
Claims (20)
- 一種類Alexnet網路的模型訓練方法,其包括:採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值;接收第二圖形處理單元GPU發送的在該類Alexnet網路下的第三梯度值;依據該第一梯度值和第三梯度值計算該類Alexnet網路的第一模型參數;接收該第二圖形處理單元GPU發送的在該類Alexnet網路下的第四梯度值;依據該第二梯度值和第四梯度值計算該類Alexnet網路的第二模型參數;採用該第一模型參數和第二模型參數訓練該類Alexnet網路的模型。
- 根據申請專利範圍第1項所述的方法,其中,該類Alexnet網路由全連接層和卷積層組成,該採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值的步驟包括:採用第一圖形處理單元GPU計算在該全連接層下的第一梯度值和在該卷積層下的第二梯度值。
- 根據申請專利範圍第2項所述的方法,其中,該第一圖形處理單元GPU包括第一計算佇列,該採用第一圖形處理單元GPU計算在該全連接層下的第一梯度值和在該卷積層下的第二梯度值的步驟包括: 採用第一計算佇列計算在該全連接層下的第一梯度值和在該卷積層下的第二梯度值。
- 根據申請專利範圍第3項所述的方法,其中,該第一圖形處理單元GPU還包括第一通信佇列,該第二圖形處理單元GPU包括第二通信佇列,該接收第二圖形處理單元GPU發送的在該類Alexnet網路下的第三梯度值的步驟包括:採用第一通信佇列接收第二通信佇列發送的第三梯度值;所述接收該第二圖形處理單元GPU發送的在該類Alexnet網路下的第四梯度值的步驟包括:採用第一通信佇列接收第二通信佇列發送的第四梯度值。
- 根據申請專利範圍第4項所述的方法,其中,該第二圖形處理單元還包括第二計算佇列,該第三梯度值和該第四梯度值分別通過如下步驟獲得:採用第二計算佇列計算在該全連接層下的第三梯度值;以及,採用第二計算佇列計算在該卷積層下的第四梯度值。
- 根據申請專利範圍第1-5項任一所述的方法,其中,所述依據該第一梯度值和第三梯度值計算該類Alexnet網路的第一模型參數的步驟包括:計算該第一梯度值和第三梯度值的平均值,獲得該類Alexnet網路的第一模型參數。
- 根據申請專利範圍第6項所述的方法,其中,所述採用該第二梯度值和第四梯度值計算該類Alexnet網路的第二模型參數的步驟包括:計算該第二梯度值和第四梯度值的平均值,獲得該類Alexnet網路的第二模型參數。
- 根據申請專利範圍第1或2或3或4或5或7項所述的方法,其中,在採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值的步驟前,還包括:判斷網路是否為類Alexnet網路。
- 根據申請專利範圍第8項所述的方法,其中,該網路包括m個結構層,該判斷網路是否為類Alexnet網路的步驟包括:對該網路進行預訓練,獲得每個結構層的計算時間和參數量;根據該計算時間和參數量,獲得該網路的計算總時間和總參數量;按照預設傳輸順序,逐層累加該m個結構層的計算時間,分別獲得截至第n層的計算時間之和;當該截至第p層的計算時間之和與該計算總時間的比值滿足第一預設條件時,累加剩餘m-p層的參數量,獲得該剩餘m-p層的參數量之和;判斷該剩餘m-p層的參數量之和與該總參數量的比值是否滿足第二預設條件; 若是,則將該網路劃分為類Alexnet網路。
- 根據申請專利範圍第9項所述的方法,其中,所述將該網路劃分為類Alexnet網路的步驟包括:將該網路的前p層劃分為類Alexnet網路的全連接層;將該剩餘m-p層劃分為類Alexnet網路的卷積層。
- 一種類Alexnet網路的模型訓練裝置,其包括:第一計算模組,用於採用第一圖形處理單元GPU計算在類Alexnet網路下的第一梯度值和第二梯度值;第一接收模組,用於接收第二圖形處理單元GPU發送的在該類Alexnet網路下的第三梯度值;第二計算模組,用於依據該第一梯度值和第三梯度值計算該類Alexnet網路的第一模型參數;第二接收模組,用於接收該第二圖形處理單元GPU發送的在該類Alexnet網路下的第四梯度值;第三計算模組,用於依據該第二梯度值和第四梯度值計算該類Alexnet網路的第二模型參數;訓練模組,用於採用該第一模型參數和第二模型參數訓練該類Alexnet網路的模型。
- 根據申請專利範圍第11項所述的裝置,其中,該類Alexnet網路由全連接層和卷積層組成,該第一計算模組包括:第一計算子模組,用於採用第一圖形處理單元GPU計算在該全連接層下的第一梯度值和在該卷積層下的第二 梯度值。
- 根據申請專利範圍第12項所述的裝置,其中,該第一圖形處理單元GPU包括第一計算佇列,該第一計算子模組包括:第一計算單元,用於採用第一計算佇列計算在該全連接層下的第一梯度值和在該卷積層下的第二梯度值。
- 根據申請專利範圍第13項所述的裝置,其中,該第一圖形處理單元GPU還包括第一通信佇列,該第二圖形處理單元GPU包括第二通信佇列,該第一接收模組包括:第一接收子模組,用於採用第一通信佇列接收第二通信佇列發送的第三梯度值;該第二接收模組包括:第二接收子模組,用於採用第一通信佇列接收第二通信佇列發送的第四梯度值。
- 根據申請專利範圍第14項所述的裝置,其中,該第二圖形處理單元還包括第二計算佇列,該第三梯度值和該第四梯度值分別通過如下模組獲得:第四計算模組,用於採用第二計算佇列計算在該全連接層下的第三梯度值;以及,第五計算模組,用於採用第二計算佇列計算在該卷積層下的第四梯度值。
- 根據申請專利範圍第11-15項任一所述的裝置,其中,該第二計算模組包括: 第一模型參數計算子模組,用於計算該第一梯度值和第三梯度值的平均值,獲得該類Alexnet網路的第一模型參數。
- 根據申請專利範圍第16項所述的裝置,其中,該第三計算模組包括:第二模型參數計算子模組,用於計算該第二梯度值和第四梯度值的平均值,獲得第二模型參數。
- 根據申請專利範圍第11或12或13或14或15或17項所述的裝置,其中,該裝置還包括:判斷模組,用於判斷網路是否為類Alexnet網路。
- 根據申請專利範圍第18項所述的裝置,其中,該網路包括m個結構層,該判斷模組包括:計算時間和參數量獲得子模組,用於對該網路進行預訓練,獲得每個結構層的計算時間和參數量;計算總時間和總參數量獲得子模組,用於根據該計算時間和參數量,獲得該網路的計算總時間和總參數量;計算時間之和獲得子模組,用於按照預設傳輸順序,逐層累加該m個結構層的計算時間,分別獲得截至第p層的計算時間之和;參數量之和獲得子模組,用於在該截至第p層的計算時間之和與該計算總時間的比值滿足第一預設條件時,累加剩餘m-p層的參數量,獲得該剩餘m-p層的參數量之和;判斷子模組,用於判斷該剩餘m-p層的參數量之和與 該總參數量的比值是否滿足第二預設條件;劃分子模組,用於在滿足第二預設條件時,將該網路劃分為類Alexnet網路。
- 根據申請專利範圍第19項所述的裝置,其中,該劃分子模組包括:全連接層劃分單元,用於將該網路的前p層劃分為類Alexnet網路的全連接層;卷積層劃分單元,用於將該剩餘m-p層劃分為類Alexnet網路的卷積層。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610201731.1A CN107292385A (zh) | 2016-03-31 | 2016-03-31 | 一种类Alexnet网络的模型训练方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201737202A true TW201737202A (zh) | 2017-10-16 |
Family
ID=59962574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106105768A TW201737202A (zh) | 2016-03-31 | 2017-02-21 | 類Alexnet網路的模型訓練方法和裝置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN107292385A (zh) |
TW (1) | TW201737202A (zh) |
WO (1) | WO2017167114A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11574193B2 (en) | 2018-04-28 | 2023-02-07 | Samsung Electronics Co., Ltd. | Method and system for training of neural networks using continuously differentiable models |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020147142A1 (zh) * | 2019-01-16 | 2020-07-23 | 华为技术有限公司 | 一种深度学习模型的训练方法、系统 |
CN110059813B (zh) * | 2019-02-13 | 2021-04-06 | 创新先进技术有限公司 | 利用gpu集群更新卷积神经网络的方法、装置及设备 |
CN111709513B (zh) * | 2019-03-18 | 2023-06-09 | 百度在线网络技术(北京)有限公司 | 长短期记忆网络lstm的训练系统、方法及电子设备 |
CN112799834B (zh) * | 2021-01-26 | 2024-05-07 | 北京迈格威科技有限公司 | 训练数据分发方法、装置、电子设备及存储介质 |
CN112949446B (zh) * | 2021-02-25 | 2023-04-18 | 山东英信计算机技术有限公司 | 一种物体识别方法、装置、设备及介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7219085B2 (en) * | 2003-12-09 | 2007-05-15 | Microsoft Corporation | System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit |
US7747070B2 (en) * | 2005-08-31 | 2010-06-29 | Microsoft Corporation | Training convolutional neural networks on graphics processing units |
CN101976207A (zh) * | 2010-07-29 | 2011-02-16 | 西安交通大学 | 一种面向gpu的数据流处理方法 |
ITRM20120094A1 (it) * | 2012-03-14 | 2013-09-14 | Istituto Naz Di Fisica Nuclea Re | Scheda di interfaccia di rete per nodo di rete di calcolo parallelo su gpu, e relativo metodo di comunicazione internodale |
CN103996069B (zh) * | 2013-02-20 | 2018-04-03 | 百度在线网络技术(北京)有限公司 | 一种基于多gpu的bpnn训练方法和装置 |
CN103150596B (zh) * | 2013-02-22 | 2015-12-23 | 百度在线网络技术(北京)有限公司 | 一种反向传播神经网络dnn的训练系统 |
CN103226540B (zh) * | 2013-05-21 | 2015-08-19 | 中国人民解放军国防科学技术大学 | 基于分组多流的gpu上多区结构网格cfd加速方法 |
CN104143327B (zh) * | 2013-07-10 | 2015-12-09 | 腾讯科技(深圳)有限公司 | 一种声学模型训练方法和装置 |
US9665823B2 (en) * | 2013-12-06 | 2017-05-30 | International Business Machines Corporation | Method and system for joint training of hybrid neural networks for acoustic modeling in automatic speech recognition |
CN103680496B (zh) * | 2013-12-19 | 2016-08-10 | 百度在线网络技术(北京)有限公司 | 基于深层神经网络的声学模型训练方法、主机和系统 |
CN104809426B (zh) * | 2014-01-27 | 2019-04-05 | 日本电气株式会社 | 卷积神经网络的训练方法、目标识别方法及装置 |
CN104035751B (zh) * | 2014-06-20 | 2016-10-12 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的数据并行处理方法及装置 |
CN104036451B (zh) * | 2014-06-20 | 2018-12-11 | 深圳市腾讯计算机系统有限公司 | 基于多图形处理器的模型并行处理方法及装置 |
CN104463324A (zh) * | 2014-11-21 | 2015-03-25 | 长沙马沙电子科技有限公司 | 一种基于大规模高性能集群的卷积神经网络并行处理方法 |
CN104899641B (zh) * | 2015-05-25 | 2018-07-13 | 杭州朗和科技有限公司 | 深度神经网络学习方法、处理器和深度神经网络学习系统 |
CN104933463B (zh) * | 2015-07-07 | 2018-01-23 | 杭州朗和科技有限公司 | 深度神经网络模型的训练方法和设备 |
-
2016
- 2016-03-31 CN CN201610201731.1A patent/CN107292385A/zh active Pending
-
2017
- 2017-02-21 TW TW106105768A patent/TW201737202A/zh unknown
- 2017-03-23 WO PCT/CN2017/077897 patent/WO2017167114A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11574193B2 (en) | 2018-04-28 | 2023-02-07 | Samsung Electronics Co., Ltd. | Method and system for training of neural networks using continuously differentiable models |
TWI806987B (zh) * | 2018-04-28 | 2023-07-01 | 南韓商三星電子股份有限公司 | 用於訓練神經網路的方法及神經網路訓練系統 |
Also Published As
Publication number | Publication date |
---|---|
WO2017167114A1 (zh) | 2017-10-05 |
CN107292385A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201737202A (zh) | 類Alexnet網路的模型訓練方法和裝置 | |
US11829874B2 (en) | Neural architecture search | |
US20230252327A1 (en) | Neural architecture search for convolutional neural networks | |
US20210295161A1 (en) | Training neural networks represented as computational graphs | |
US11568258B2 (en) | Operation method | |
EP3059699B1 (en) | Neural network training method and recognition apparatus | |
US11861474B2 (en) | Dynamic placement of computation sub-graphs | |
KR102415506B1 (ko) | 뉴럴 네트워크 간소화 방법 및 장치 | |
EP3451242A1 (en) | Device and method for performing reversetraining of fully connected layers of neural network | |
CN111176758B (zh) | 配置参数的推荐方法、装置、终端及存储介质 | |
Ni et al. | A multiagent Q-learning-based optimal allocation approach for urban water resource management system | |
CN111406264A (zh) | 神经架构搜索 | |
US11809977B2 (en) | Weakly supervised reinforcement learning | |
CN110930996B (zh) | 模型训练方法、语音识别方法、装置、存储介质及设备 | |
US11663461B2 (en) | Instruction distribution in an array of neural network cores | |
JP2019075114A (ja) | アクティベーション演算とコンボリューション演算を同時に遂行するための方法及び装置、そしてこのための学習方法及び学習装置 | |
CN111047078B (zh) | 交通特征预测方法、系统及存储介质 | |
US20210089867A1 (en) | Dual recurrent neural network architecture for modeling long-term dependencies in sequential data | |
CN115357554A (zh) | 一种图神经网络压缩方法、装置、电子设备及存储介质 | |
Gupta | Introduction to hardware accelerator systems for artificial intelligence and machine learning | |
CN114648103A (zh) | 用于处理深度学习网络的自动多目标硬件优化 | |
EP3843012A1 (en) | Method and apparatus with neural network data input and output control | |
CN110222734A (zh) | 贝叶斯网络学习方法、智能设备及存储装置 | |
Dumachev | On semideterministic finite automata games type | |
US11231961B2 (en) | Scheduling operations |