1. 程式人生 > 程式設計 >關於Tensorflow分散式並行策略

關於Tensorflow分散式並行策略

tensorFlow中主要包括了三種不同的並行策略,其分別是資料並行、模型並行、模型計算流水線並行,具體參考Tenssorflow白皮書,在接下來分別簡單介紹三種並行策略的原理。

資料並行

一個簡單的加速訓練的技術是並行地計算梯度,然後更新相應的引數。資料並行又可以根據其更新引數的方式分為同步資料並行和非同步資料並行,同步的資料並行方式如圖所示,tensorflow圖有著很多的部分圖模型計算副本,單一的客戶端執行緒驅動整個訓練圖,來自不同的裝置的資料需要進行同步更新。這種方式在實現時,主要的限制就是每一次更新都是同步的,其整體計算時間取決於效能最差的那個裝置。

關於Tensorflow分散式並行策略

資料並行還有非同步的實現方式,如圖所示,與同步方式不同的是,在處理來自不同裝置的資料更新時進行非同步更新,不同裝置之間互不影響,對於每一個圖副本都有一個單獨的客戶端執行緒與其對應。在這樣的實現方式下,即使有部分裝置效能特別差甚至中途退出訓練,對訓練結果和訓練效率都不會造成太大影響。但是由於裝置間互不影響,所以在更新引數時可能其他裝置已經更好的更新過了,所以會造成引數的抖動,但是整體的趨勢是向著最好的結果進行的。所以說這種方式更適用於資料量大,更新次數多的情況。

關於Tensorflow分散式並行策略

模型並行

一個模型並行訓練的例子如圖所示,其針對的訓練物件是同一批樣本資料,但是將不同的模型計算部分分佈在不同的計算裝置上同時執行。

關於Tensorflow分散式並行策略

模型計算流水線並行

此並行方式主要針對在同一個裝置中併發實現模型的計算,如圖是其併發計算步驟,可以發現它實際上與非同步資料並行有些相似,但是唯一不同的是此方式的並行發生在同一個裝置上,而不是在不同的裝置之間。並且在計算一批簡單的樣例時,允許進行“填充間隙”,這可以充分利用空閒的裝置資源。

關於Tensorflow分散式並行策略

以上這篇關於Tensorflow分散式並行策略就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。