關(guān)于Tensorflow分布式并行策略
tensorFlow中主要包括了三種不同的并行策略,其分別是數(shù)據(jù)并行、模型并行、模型計算流水線并行,具體參考Tenssorflow白皮書,在接下來分別簡單介紹三種并行策略的原理。
數(shù)據(jù)并行
一個簡單的加速訓(xùn)練的技術(shù)是并行地計算梯度,然后更新相應(yīng)的參數(shù)。數(shù)據(jù)并行又可以根據(jù)其更新參數(shù)的方式分為同步數(shù)據(jù)并行和異步數(shù)據(jù)并行,同步的數(shù)據(jù)并行方式如圖所示,tensorflow圖有著很多的部分圖模型計算副本,單一的客戶端線程驅(qū)動整個訓(xùn)練圖,來自不同的設(shè)備的數(shù)據(jù)需要進(jìn)行同步更新。這種方式在實現(xiàn)時,主要的限制就是每一次更新都是同步的,其整體計算時間取決于性能最差的那個設(shè)備。

數(shù)據(jù)并行還有異步的實現(xiàn)方式,如圖所示,與同步方式不同的是,在處理來自不同設(shè)備的數(shù)據(jù)更新時進(jìn)行異步更新,不同設(shè)備之間互不影響,對于每一個圖副本都有一個單獨(dú)的客戶端線程與其對應(yīng)。在這樣的實現(xiàn)方式下,即使有部分設(shè)備性能特別差甚至中途退出訓(xùn)練,對訓(xùn)練結(jié)果和訓(xùn)練效率都不會造成太大影響。但是由于設(shè)備間互不影響,所以在更新參數(shù)時可能其他設(shè)備已經(jīng)更好的更新過了,所以會造成參數(shù)的抖動,但是整體的趨勢是向著最好的結(jié)果進(jìn)行的。所以說這種方式更適用于數(shù)據(jù)量大,更新次數(shù)多的情況。

模型并行
一個模型并行訓(xùn)練的例子如圖所示,其針對的訓(xùn)練對象是同一批樣本數(shù)據(jù),但是將不同的模型計算部分分布在不同的計算設(shè)備上同時執(zhí)行。

模型計算流水線并行
此并行方式主要針對在同一個設(shè)備中并發(fā)實現(xiàn)模型的計算,如圖是其并發(fā)計算步驟,可以發(fā)現(xiàn)它實際上與異步數(shù)據(jù)并行有些相似,但是唯一不同的是此方式的并行發(fā)生在同一個設(shè)備上,而不是在不同的設(shè)備之間。并且在計算一批簡單的樣例時,允許進(jìn)行“填充間隙”,這可以充分利用空閑的設(shè)備資源。

以上這篇關(guān)于Tensorflow分布式并行策略就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)從腳本里運(yùn)行scrapy的方法
這篇文章主要介紹了Python實現(xiàn)從腳本里運(yùn)行scrapy的方法,實例分析了Python腳本運(yùn)行的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-04-04
pycharm利用pyspark遠(yuǎn)程連接spark集群的實現(xiàn)
由于工作需要,利用spark完成機(jī)器學(xué)習(xí)。因此需要對spark集群進(jìn)行操作。所以利用pycharm和pyspark遠(yuǎn)程連接spark集群。感興趣的可以了解一下2021-05-05
Python隨機(jī)生成均勻分布在三角形內(nèi)或者任意多邊形內(nèi)的點(diǎn)
這篇文章主要為大家詳細(xì)介紹了Python隨機(jī)生成均勻分布在三角形內(nèi)或者任意多邊形內(nèi)的點(diǎn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12
詳解Python圖像形態(tài)學(xué)處理(開運(yùn)算,閉運(yùn)算,梯度運(yùn)算)
數(shù)學(xué)形態(tài)學(xué)(Mathematical Morphology)是一種應(yīng)用于圖像處理和模式識別領(lǐng)域的新方法。本文將為大家介紹Python圖像形態(tài)學(xué)處理中的開運(yùn)算、閉運(yùn)算和梯度運(yùn)算,感興趣的可以了解一下2022-06-06
selenium攜帶cookies模擬登陸CSDN的實現(xiàn)
這篇文章主要介紹了selenium攜帶cookies模擬登陸CSDN的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
python實現(xiàn)對一個完整url進(jìn)行分割的方法
這篇文章主要介紹了python實現(xiàn)對一個完整url進(jìn)行分割的方法,涉及Python操作URL的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04

