久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

tensorflow 多GPU操作

 雪柳花明 2017-05-17

tensorflow 多GPU操作有兩種方法:
一種是常用的數(shù)據(jù)并行,,另一種是模型并行。


一 模型并行
指的是將一個完整的網(wǎng)絡(luò)切分成不同塊放在不同gpu上執(zhí)行,,每個gpu可能只處理某一張圖的四分之一,。采用模型并行很大程度上是因為顯存不夠放不下整個網(wǎng)絡(luò)的數(shù)據(jù)。



二  數(shù)據(jù)并行

數(shù)據(jù)并行的原理很簡單,,如下圖,,其中CPU主要負責(zé)梯度平均和參數(shù)更新,而GPU1和GPU2主要負責(zé)訓(xùn)練模型副本(model replica),,這里稱作“模型副本”是因為它們都是基于訓(xùn)練樣例的子集訓(xùn)練得到的,,模型之間具有一定的獨立性。具體的訓(xùn)練步驟如下,,

 (1)在GPU1,、GPU2上分別定義模型參數(shù)變量,網(wǎng)絡(luò)結(jié)構(gòu),;

(2)對于單獨的GPU,,分別從數(shù)據(jù)管道讀取不同的數(shù)據(jù)塊,然后進行前向傳播(forward propagation)計算出loss,,再計算關(guān)于當(dāng)前Variables的gradients,;

(3)把所有GPU輸出的梯度數(shù)據(jù)轉(zhuǎn)移到CPU上,先進行梯度取平均操作,,然后進行模型參數(shù)的更新,;

(4)重復(fù)步驟(1)-(3),直到模型參數(shù)收斂為止,;

值得說明的是,,在第(1)步中定義模型參數(shù)時,要考慮到不同model replica之間要能夠share Variables,,因此要采用tf.get_variable()函數(shù)而不是直接tf.Variables()(關(guān)于tf.get_variable()和tf.Variable的區(qū)別,,請讀者參見其幫助手冊)。另外,,因為tensorflow和theano類似,,都是先定義好tensor Graph,,再基于已經(jīng)定義好的Graph進行模型迭代式訓(xùn)練的。因此在每次迭代過程中,,只會對當(dāng)前的模型參數(shù)進行更新,,而不會調(diào)用tf.get_variable()函數(shù)重新定義模型變量,因此變量共享只是存在于模型定義階段的一個概念,。


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多