999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

卷積神經網絡并行方法研究

2020-11-12 10:39:22朱傳家方佳瑞
計算機應用與軟件 2020年11期
關鍵詞:模型

朱傳家 劉 鑫* 方佳瑞

1(江南計算技術研究所 江蘇 無錫 214083) 2(清華大學計算機科學與技術系 北京 100084)

0 引 言

隨著深度神經網絡的發展,深度學習技術廣泛應用于語音識別[1]、圖像識別[2]、自然語言處理[3]等領域。深度神經網絡的成功源于深度神經網絡模型具有從大量數據中學習復雜特征的能力。越來越大的數據集和網絡模型可以提高訓練的性能。然而,隨著數據規模的增長和深度神經網絡模型日益復雜,訓練時間越來越長,訓練需要的內存越來越多。提高深度神經網絡的訓練效率成為一大挑戰。

深度神經網絡模型種類繁多,不同的網絡模型具有不同的特點。對不同的神經網絡模型需要采用不同的并行優化方法。在一些卷積神經網絡模型中,卷積層持有約10%的參數量和約90%的計算量,而全連接層持有約90%的參數量和約10%的計算量。因此,可以對卷積層采用數據并行的并行方法,對全連接層采用模型并行的并行方法。

本文基于國產超級計算機系統和深度學習框架Caffe[4],對卷積神經網絡進行并行方法研究,提出一種對卷積層使用數據并行、對全連接層使用模型并行的并行方法。

1 背景介紹

1.1 卷積神經網絡基礎

卷積神經網絡是經典的深度學習網絡,主要由卷積層、全連接層等組成。卷積層是卷積神經網絡的核心,用于從輸入層或較低層級的特征圖中進行特征提?。蝗B接層的作用為連接所有的特征,將輸出值送給分類器進行輸出,如圖1所示。

圖1 AlexNet網絡結構圖[5]

訓練卷積神經網絡使用反向傳播算法對網絡參數進行優化。反向傳播算法包括正向計算和反向計算。正向計算順著網絡結構依次計算,最終得到網絡的輸出結果;反向計算計算損失函數相對于網絡參數權重的梯度,并利用梯度更新網絡參數。基于同步的隨機梯度下降算法[6]具有結構簡單、收斂性好的優點,廣泛應用于網絡參數優化。分布式系統中使用分布式隨機梯度下降算法,在不同的工作節點間進行梯度的歸約和平均,公式如下:

Wt+1=Wt-ηE(ΔWt)

(1)

式中:Wt為第t次迭代的權重值;η為學習率;ΔWt為第t次迭代W關于損失函數的梯度;E(ΔWt)為第t次迭代各節點W關于損失函數的梯度的均值。

1.2 Caffe簡介

Caffe[7]是加州大學伯克利視覺和學習中心(BVLC)推出的一款深度學習框架,廣泛應用于工業界。它完全基于C++開發,具有結構清晰、層次分明、效率高和可移植性好的優點;采用模塊化架構,易于擴展新的數據格式、網絡層和損失函數等。

Caffe框架由Solver、Net、Layer和Blob定義[8]。Solver是求解器,負責協調模型的優化和測試;Net、Layer和Blob組成具體的模型。Net是網絡,從下到上逐層定義整個模型,一次迭代可以看作Net的一次正向傳播和反向傳播。Layer是計算的基本單元,定義具體的運算,比如卷積、池化、全連接等。Blob是Caffe的標準數據結構,提供了統一的內存接口。

運行于國產超級計算機系統的Caffe不僅實現了應用程序的移植,還針對國產超級計算機系統的體系結構進行了深度優化,使用了專門開發的數學庫[9]。Caffe繼承了BVLC版Caffe的優點,并且在國產超級計算機系統上具有運行效率高、可進行大規模分布式擴展的優點。

2 相關工作

隨著深度學習技術的發展,出現了很多深度神經網絡并行方法的研究。常見的并行方法有數據并行和模型并行。數據并行[10]方法中,每臺機器在小批量的數據上訓練網絡并計算梯度,采用同步或異步方式對網絡參數進行同步;模型并行[11]方法中,將計算進行劃分并分配到不同的機器上。

Google的DistBelief[12]和微軟的Adams[13]都使用了數據并行和模型并行訓練大規模模型。Coates等[14]提出了基于GPU集群的模型并行系統,Li等[15]提出了基于異步交互的參數服務器方式的數據并行。

然而,現有的對深度神經網絡進行數據并行和模型并行方法的研究大多基于商用平臺如GPU等,與國產超級計算機系統的體系結構相比具有比較大的差異。因此,針對國產超級計算機系統,本文研究并提出一種適合卷積神經網絡的并行方法。

3 算法設計

對卷積層進行數據并行,對全連接層進行模型并行。圖2展示了一個含有3個卷積層和2個全連接層的卷積神經網絡,4個計算單元(進程)。卷積層的所有參數在每個計算單元上均有一個副本,全連接層的網絡參數按照計算單元數進行切分,并按順序分布在不同的計算單元上。

圖2 卷積神經網絡并行方法示意圖

一次訓練迭代優化過程包括前向傳播過程和后向傳播過程。前向傳播過程中,卷積層利用計算單元持有的全部網絡參數和輸入數據計算預測輸出。全連接層利用計算單元持有的部分網絡參數和所有的計算單元的數據進行計算,得到部分預測輸出,所有計算單元的預測輸出進行整合后再按順序分配到計算單元上。后向傳播過程中全連接層對預測輸出進行反向整合,再計算梯度并對梯度信息進行整合;卷積層正常計算梯度。最后,對每層的梯度信息采用同步隨機梯度下降算法進行更新。

3.1 卷積層數據并行

卷積層數據并行采用去中心化的系統架構。去中心化的系統架構由多個工作節點組成,每個工作節點擁有相同的網絡參數,自主進行參數更新,如圖3所示。在每次優化迭代過程中,每個工作節點在網絡正向傳播過程中計算損失;在反向傳播過程中計算梯度信息,并對梯度信息進行聚集平均操作,利用得到的梯度信息自主進行參數更新。

圖3 去中心化方式數據并行架構圖

去中心化數據并行方法的算法設計如下:

1) 網絡初始化時:

所有工作節點同步卷積層的網絡參數。

2) 在每次優化迭代過程中:

(1) 工作節點從下向上對卷積層進行特征計算;

(2) 工作節點從上向下對卷積層計算權重梯度、偏差梯度和數據梯度;

(3) 所有網絡層梯度計算完成后,所有工作節點對權重梯度信息和偏差梯度信息進行聚集平均操作,使所有進程持有相同的梯度信息;

(4) 所有工作節點利用更新后的梯度信息自主更新網絡參數。

3.2 全連接層模型并行

約定網絡自下而上進行正向傳播,自上而下進行反向傳播。如圖4所示,正向計算時,layer_i的輸出top_data為layer_i+1的輸入bottom_data;反向計算時,layer_i+1的輸出bottom_diff為layer_i的輸入top_diff。layer_i持有該層的權重weight、權重梯度weight_diff、偏差bias_data、偏差權重bias_weight和偏差權重梯度bias_diff。

圖4 網絡層數據結構說明圖

1) 網絡層參數切分。全連接層模型并行時,對網絡參數按照輸出維度進行切分,需要切分的網絡參數有網絡權重、權重梯度、偏差權重、偏差權重梯度等。由于工作節點的計算能力均衡,因此選擇等量切分方式。在正向特征計算中,每個工作節點的數據需要所有工作節點的網絡參數才能計算出其相應的特征輸出;在反向梯度計算中,每個工作節點需要所有工作節點的數據才能計算出其相應的梯度信息。

2) 正向傳播過程。單節點全連接層正向傳播時,特征輸入bottom_data和權重weight的乘積加上偏差bias_data和偏差權重bias_weight的乘積為特征輸出top_data。模型并行時,weight、bias_data、bias_weight切分后分布在不同的工作節點上,每個工作節點持有自己的bottom_data。以四個工作節點為例,進程號分別為0、1、2、3;相對應的數據結構為xx_0、xx_1、xx_2、xx_3。如2號進程的特征輸入為bottom_data_2。

具體算法如下:

(1) 所有工作節點向其他工作節點廣播自己的bottom_data_x,工作節點收到其他工作節點的bottom_data后按順序進行拼接,如圖5所示。

圖5 bottom_data輸入拼接圖

(2) 所有工作節點使用拼接后的bottom_data和其持有的weight、bias_data進行計算,得到top_data_x,如圖6所示。

圖6 top_data輸出計算圖

(3) 所有工作節點向其他工作節點廣播自己的偏差bias_data,工作節點收到其他工作節點的bias_data后按順序進行拼接。然后使用拼接好的bias_data和偏差權重bias_weight的乘積與(2)中得到的top_data_x相加,得到新的top_data_x,如圖7所示。

圖7 top_data偏移計算圖

(4) 所有工作節點向其他工作節點廣播自己的top_data_x,工作節點收到其他工作節點的top_data后按順序進行拼接,每個工作節點按新的順序讀取其最終的top_data_x,如圖8所示。

圖8 top_data讀取分布圖

3) 反向傳播過程。單節點全連接層反向傳播時,特征輸出梯度top_diff和特征輸入bottom_data的乘積為權重梯度weight_diff;偏差bias_data和特征輸出梯度top_diff的乘積為偏差梯度bias_diff;輸出特征梯度top_diff和權重weight的乘積為特征輸入梯度bottom_diff。模型并行時,對網絡參數進行了切分,需要先進行數據的同步變換,再進行計算。同前向傳播一樣,以四個工作節點為例,進程號分別為0、1、2、3;相對應的數據結構為xx_0、xx_1、xx_2、xx_3。如2號進程的特征輸出梯度為top_diff_2。

具體算法如下:

(1) 所有工作節點向其他工作節點廣播自己的top_diff_x,工作節點收到其他工作節點的top_diff后按順序進行拼接,并按新的順序讀取該工作節點對應的top_diff_x,如圖9所示。

圖9 top_diff拼接變換圖

(2) 所有工作節點向其他工作節點廣播自己的bottom_data_x,工作節點收到其他工作節點的bottom_data后按順序進行拼接,如圖10所示。

圖10 權重梯度計算圖

(3) 工作節點使用獲得的top_diff_x和bottom_data計算權重梯度weight_diff,如圖10所示。

(4) 所有工作節點使用獲得的top_diff_x和weight計算bottom_diff_x,如圖11所示;計算完成后所有的工作節點對bottom_diff_x進行歸約操作;歸約操作完成后,所有工作節點讀取其對應的bottom_diff_x,如圖12所示。

圖11 bottom_diff計算圖

圖12 bottom_diff歸約圖

(5) 所有工作節點向其他工作節點廣播自己的bias_data_x,工作節點收到其他工作節點的bias_data后按順序進行拼接,如圖13所示。

圖13 bias_diff計算圖

(6) 工作節點使用top_diff_x和bias_data計算bias_diff,如圖13所示。

4 性能分析與優化

數據并行和模型并行都基于同步梯度更新的分布式隨機梯度下降算法對網絡參數進行優化,因而兩者的計算量是相等的。數據并行和模型并行的性能取決于不同工作節點之間的數據同步效率,在硬件性能和網絡聚集算法一定的前提下,不同工作節點之間的數據同步效率有兩部分影響因素,分別是同步數據量和網絡同步時延。

4.1 同步數據量

全連接層數據并行時,同步的數據為網絡權重梯度和偏差梯度,數據量大小為K×N+N,K和N為網絡權重矩陣的行數和列數;全連接層模型并行時,數據傳輸量為正向傳輸數據量和反向傳輸數據量之和,大小為3×M×K×rankcount+2M×N×rankcount,M表示Batchsize,rankcount表示工作節點數量。

當M×rankcount<(K+1)×N/(3×K+2×N)時,全連接層模型并行同步的數據量少于數據并行同步的數據量。在卷積神經網絡中,K和N的值是確定的,因此,當M和rankcount變大時,模型并行同步的數據量越大,其優勢相比于數據并行變小。

4.2 網絡同步時延

對相同的傳輸數據量,網絡同步時延與網絡傳輸次數成正比。全連接層進行數據并行時,整個網絡采用數據并行,可以將分散的梯度信息內存整理成連續的一段內存,從而可以在一次網絡聚集平均操作中完成梯度信息的同步。全連接層進行模型并行時,需要對運算矩陣、計算結果等進行同步操作,增加了網絡同步次數。具體網絡聚集次數如表1所示。

表1 全連接層數據并行和模型并行網絡聚集次數對比

對全連接層不同并行方法的同步數據量和網絡同步時延分析可以發現,當全連接層網絡參數量較少時,采用數據并行效率更高。

在卷積神經網絡中,當有多個全連接層時,不同全連接層的網絡參數往往分布不均勻,如表2所示。因此,可以對參數量較少的全連接層采用數據并行。

表2 卷積神經網絡全連接層參數分布表 MB

5 實 驗

5.1 實驗設計

選擇國產超級計算機系統和深度學習框架Caffe進行實驗。每個處理器作為一個工作節點。設計兩個實驗,分別驗證CNN并行方法的正確性和性能。

5.2 正確性驗證

選用Cifar10-quick網絡模型和Cifar10數據集,在單節點、網絡數據并行、卷積層數據并行、全連接層模型并行的情況下對網絡進行訓練。訓練結果如表3所示。

表3 數據并行和模型并行正確性驗證表

可以看出,三種情況下訓練網絡均能有效收斂,驗證了卷積層數據并行、全連接層模型并行方法的有效性。

5.3 性能測試及分析

選用VGG-16網絡模型和Imagenet數據集進行性能測試。實驗中,卷積層采用數據并行方式,每層全連接層分別進行數據并行和模型并行,并對性能進行對比。實驗選擇的并行力度為2、4、8;Batch size范圍為1~128。實驗結果如圖14-圖16所示。

圖14 FC1層數據并行和模型并行通信時間對比圖

圖15 FC2層數據并行和模型并行通信時間對比圖

圖16 FC3層數據并行和模型并行通信時間對比圖

圖14-圖16中,MP2、MP4、MP8代表該全連接層模型并行,并行粒度分別為2、4、8;DP2、DP、DP8代表該全連接層數據并行,并行粒度分別為2、4、8。FC1、FC2、FC3表示網絡中第一到第三全連接層,含有的參數量分別為102.76、 16.78、4.10 MB。

由圖14可以看出,對第一個全連接層,在并行粒度為2到8,Batch size為1到128時,模型并行所用時間均少于數據并行所用時間。在并行粒度一定時,模型并行相對于數據并行的優勢隨著Batch size的增大而逐漸變小。在Batch size一定時,模型并行相對于數據并行的優勢隨著并行粒度的增大而變小。在Batch size=1,并行粒度為2時,模型并行相比數據并行對FC6層的加速可達33倍。

由圖15可以看出,對第二個全連接層,在并行粒度為2到4,Batch size為1到128時,模型并行所用時間少于數據并行所用時間。并行粒度為8時,Batch size為1到64時,模型并行所用時間少于數據并行所用時間。Batch size為128時,模型并行所用時間比數據并行多,對第二全連接層采用數據并行效率更高。在Batch size=1,并行粒度為2時,模型并行相比數據并行對FC2層的數據加速可達6倍。

由圖16可以看出,對第三個全連接層,在并行粒度為2,Batch size為1到64時,模型并行所用時間少于數據并行所用時間;在Batch size為1,并行粒度為2和4時,模型并行所用時間少于數據并行所用時間;其他情況下,模型并行所用時間大于數據并行所用時間,對該全連接層采用數據并行效率更高。

6 結 語

本文基于國產超級計算機系統對卷積神經網絡進行并行方法研究,根據卷積神經網絡參數量分布不均勻的特點,對卷積層進行數據并行,對參數量較多的全連接層進行模型并行,對參數量較少的全連接層進行數據并行。實驗結果表明,對全連接層采用模型并行相比對該層采用數據并行在訓練效率上最大加速可達33倍。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 亚洲va精品中文字幕| 国产熟睡乱子伦视频网站| 久操线在视频在线观看| 全午夜免费一级毛片| 国产丝袜无码一区二区视频| 成人毛片在线播放| 亚洲美女一区| 人妻丰满熟妇啪啪| 亚洲欧美日韩动漫| 日本精品影院| 精品三级网站| 免费一级毛片在线播放傲雪网| 欧美性爱精品一区二区三区 | 成人午夜精品一级毛片| 99九九成人免费视频精品| 成人夜夜嗨| 国产精品一区二区在线播放| 久久夜色精品| 天堂中文在线资源| 欧美亚洲国产一区| 国产欧美日韩另类精彩视频| 伊人91视频| 国产精品页| 国产成人a在线观看视频| 色婷婷综合激情视频免费看| 精品撒尿视频一区二区三区| 2020亚洲精品无码| 国产欧美中文字幕| 国产精品亚洲一区二区在线观看| 欧美一道本| 亚洲视频免费播放| 亚洲视频在线观看免费视频| 国产成人精品视频一区视频二区| 四虎永久在线视频| 亚洲中文久久精品无玛| 国产综合另类小说色区色噜噜 | 青青青伊人色综合久久| 青草视频久久| 国产夜色视频| 久久综合九九亚洲一区| 一级毛片在线播放| 日本日韩欧美| 国产精女同一区二区三区久| 国产伦片中文免费观看| 欧美精品v欧洲精品| 99久久精品国产麻豆婷婷| 日韩av高清无码一区二区三区| 亚洲无码91视频| 88国产经典欧美一区二区三区| 欧美高清日韩| 亚洲欧美日韩精品专区| 狠狠色狠狠综合久久| 日韩欧美成人高清在线观看| 台湾AV国片精品女同性| 99免费在线观看视频| 老司机久久精品视频| 国产精品无码久久久久AV| 国产精品主播| 日韩精品毛片| AV网站中文| 国产1区2区在线观看| 天堂va亚洲va欧美va国产| 日韩欧美高清视频| 91亚瑟视频| 91尤物国产尤物福利在线| 久久综合九色综合97婷婷| 欧美成人看片一区二区三区 | 亚欧乱色视频网站大全| 欧美国产在线一区| 国产一区二区三区免费观看| 色呦呦手机在线精品| 久久黄色影院| 一级毛片在线播放免费| 亚洲激情99| 免费国产高清视频| 啪啪免费视频一区二区| 国产精品xxx| 亚洲第一色视频| 国产亚洲精| 中文天堂在线视频| 四虎在线观看视频高清无码| 中国成人在线视频|