卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中的SGD的并行化設(shè)計_第1頁
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中的SGD的并行化設(shè)計_第2頁
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中的SGD的并行化設(shè)計_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中的SGD的并行化設(shè)計前段時間一直在關(guān)注CNN的實現(xiàn),查看了caffe的代碼以及convnet2的代碼。目前對單機(jī)多卡的內(nèi)容比較感興趣,因此特別關(guān)注convnet2關(guān)于multi-GPU的支持。其中cuda-convnet2的項目地址發(fā)布在:GoogleCode:cuda-convnet2關(guān)于multi-GPU的一篇比較重要的論文就是:Oneweirdtrickforparallelizingconvolutionalneuralnetworks本文也將針對這篇文章給出分析。

1、簡介介紹一種卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中的SGD的并行化方法。兩個變種模型并行:不同的workers訓(xùn)練模型的不同patrs,比較適合神經(jīng)元活動比較豐富的計算。數(shù)據(jù)并行:不同的workers訓(xùn)練不同的數(shù)據(jù)案例,比較適合weight矩陣比較多的計算。2.觀察現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)主要由兩種層構(gòu)成,他們具有不一樣的屬性和性能:

1)卷積層,占據(jù)了90%~95%的計算量,5%的參數(shù),但是對結(jié)果具有很大的表達(dá)能力。

2)全連接層,占據(jù)了5%~10%的計算量,95%的參數(shù),但是對于結(jié)果具有相對較小的表達(dá)的能力。綜上:卷積層計算量大,所需參數(shù)系數(shù)W少,全連接層計算量小,所需參數(shù)系數(shù)W多。因此對于卷積層適合使用數(shù)據(jù)并行,對于全連接層適合使用模型并行。3.推薦的算法前向傳播1)Kworkers中的每一個worker都提供不同的128個examples的databatch,也就是每一個worker的數(shù)據(jù)都是不一樣的。

2)每一個worker都在其databatch上計算卷積層。每一個worker的卷積層是按照順序執(zhí)行的。

3)全連接層的計算,分為以下三種方式:

(a)每一個worker將其最后階段的卷積層activities傳遞給其他的worker。這些workers將這128K個examples配置成一個大的batch,然后在這個batch上計算全連接層。

(b)第一個worker將其最后階段的卷積層activities傳遞給其他workers,這些workers計算128個examples配置成的batch并且開始反向傳遞。(與這一次計算并行的同時,第二個worker將卷積層的activities傳遞到所有的workers中,即實現(xiàn)了activities傳遞和計算之間的流水線)。

(c)全部的workers傳遞128/K個卷積層的activities到其他的workers,計算方式同(b)。對于上述(a~c)三種不同的全連接層實現(xiàn)方式,進(jìn)行如下的分析:(a)當(dāng)128Kimages配置到每一個worker的時候,所有有用的work必須要暫停。另外大的batches消耗大量的顯存,這對于GPU顯存有限制的設(shè)備是不希望發(fā)生的。另一方面,大的batches有利于GPU性能的發(fā)揮。(b)所有的workers輪流將他們的activities傳播到所有的workers上面。這里輪流執(zhí)行得到的最重要的結(jié)果是可以將大部分傳播通信時間隱藏(因為他可以在上一次計算的時候,與計算一起并行處理,確切是K-1次通信時間可以隱藏)。這樣做的意義非常的重大,可以實現(xiàn)一部分流水,使得通信時間隱藏,達(dá)到了很好的并行效果。(c)與(b)的方案類似。他的一個優(yōu)勢就是通信與計算的比例是常數(shù)K,對于(a)和(b),與K成比例。這是因為(a)和(b)方案經(jīng)常會受到每一個worker的輸出帶寬的限制,方案(c)可以利用所有的workers來完成這一任務(wù),對于大的K會有非常大的優(yōu)勢。反向傳播1)workers按照通常的方式在全連接層計算梯度。

2)按照前向傳播中不同的實現(xiàn)方案,這里會有對應(yīng)的三種方案:

(a)每一個worker都為整個128Kexamples的batch計算了activities的梯度。所以每一個worker必須將每一個example的梯度傳遞給前向傳播生成這個example的worker上面。這之后,卷積層的反向傳播按照常規(guī)方式獲取。

(b)每一個worker已經(jīng)為128examples的batch計算了activities的梯度,然后將這些梯度值傳遞給每一個與這個batch相關(guān)的workers上。(在傳播的同時,可以進(jìn)行下一個batch的計算)。在經(jīng)過K次前向和反向的傳播,所有的梯度值都將被傳播到卷積層。

(c)與(b)類似。每一個worker計算了128examplesbatch的梯度,這128-examplebatch來自于每一個worker的128/K-examples,所以為了正確的分配每一個梯度,需要安裝相反的操作來進(jìn)行。Weight權(quán)值矩陣同步一旦反向傳播完成之后,workers就可以更新weight矩陣了。在卷積層,workers也必須同步weight矩陣。最簡單的方式可以按如下進(jìn)行:

1)每一個worker指定

溫馨提示

  • 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

提交評論