當前位置:
首頁 > 知識 > tensorflow 怎麼配置非數據並行分散式?

tensorflow 怎麼配置非數據並行分散式?

這裡是 AI 研習社,我們的問答版塊已經正式推出了!歡迎大家來多多交流~

https://club.leiphone.com/page/question


社長為你推薦來自 AI 研習社問答社區的精華問答。如有你也有問題,歡迎進社區提問。

話不多說,直接上題

@iresine問:tensorflow 怎麼配置非數據並行分散式?

假設模型有兩個conv層和1個fc層,有3台伺服器每台各一塊顯卡,請問要怎麼實現把計算圖拆成3部分,每塊顯卡分別計算一個層,而不是把計算圖完整複製3份放到3塊卡上獨立計算?

來自社友的回答

@王奇文:

你指的是in-graph模式的模型並行吧?思考以下幾個問題:

cpu和gpu的優勢和劣勢分別是什麼?cpu擅長指定操作,邏輯判斷,gpu擅長矩陣運算,二者相互補充,一邊用cpu執行參數更新、邏輯運算,gpu執行矩陣運算

tf的分散式實現有哪些類別?單機單卡,單機多卡,多機多卡。此處適用於多機多卡(單卡),3個伺服器分成兩類:參數伺服器ps,計算伺服器work,中間通過gRPC調用、傳輸

2個卷積核1個fc真的有必要分散在三台機器嗎?如果純粹為了做實驗,可以參考下tf官方的in-graph實現。基本方法是:

定義網路結構時,指定tf.device(""),如:

withtf.device("/job:ps/task:0"):#參數定義在機器D上

w=tf.get_variable("w",(2,2),tf.float32,initializer=tf.constant_initializer(2))

b=tf.get_variable("b",(2,2),tf.float32,initializer=tf.constant_initializer(5))

withtf.device("/job:worker/task:0/cpu:0"):#在機器A cpu上運行

addwb=w+b

withtf.device("/job:worker/task:1/cpu:0"):#在機器B cpu上運行

mutwb=w*b

withtf.device("/job:worker/task:2/cpu:0"):#在機器C cpu上運行

divwb=w/b


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

告別選擇困難症,我來帶你剖析這些深度學習框架基本原理
CVPR18 最佳論文演講:研究任務之間的聯繫才是做遷移學習的正確姿勢

TAG:AI研習社 |