分佈式深度學習three

對tensorflow的dataflow進行了瞭解,節點:代表各類操作(operation),具體包括數學運算、數據填充、結果輸出和變量讀寫等。有向邊:描述節點間的輸入、輸出關係,而張量(Tensor)則在邊上流動。Tensoflow中的數據流圖是有向圖,不能連成爲環。

Tensorflow實現的dataflow的過程是:

Client設定計算圖,通過session發送給master。Master對圖進行執行的過程。這個設計用dataflow替代了具體執行指令,當有新的想法時,可以高效的完成。不必修改大量的底層代碼。

其中涉及到的有節點置放方法,對這塊理解是根據數據流圖使用貪心算法選擇節點需要執行的設備。這個過程涉及代價估計。這個過程是全自動完成的。不用指定設備地址,對用戶很友好。

當節點置放好後,會將圖分爲幾個小的子圖的集合。設置了send和receive兩種機制。這兩種機制能夠實現子圖之間通信。

對於分佈式機制:需要一個控制流進行調度,該過程發生在在圖的劃分中,自動地增加控制節點到每個子圖上。這些節點實現了一個小的狀態機,來管理每次迭代的開始和終止,確定整個循環的終止。

Tensorflow這個流程,設計了一個checkpoint操作,有點類似中斷的過程。可以恢復計算圖出現的錯誤。

思考:Tensorflow中dataflow方法用的很巧,在分佈式中,如何能將數據流圖進一步優化,會成爲一種分佈式提速的一種方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章