關(guān)于pytorch多GPU訓(xùn)練實例與性能對比分析
以下實驗是我在百度公司實習(xí)的時候做的,記錄下來留個小經(jīng)驗。
多GPU訓(xùn)練
cifar10_97.23 使用 run.sh 文件開始訓(xùn)練
cifar10_97.50 使用 run.4GPU.sh 開始訓(xùn)練
在集群中改變GPU調(diào)用個數(shù)修改 run.sh 文件
nohup srun --job-name=cf23 $pt --gres=gpu:2 -n1 bash cluster_run.sh $cmd 2>&1 1>>log.cf50_2GPU &
修改 –gres=gpu:2 即可
Python 文件代碼修改
parser.add_argument('--batch_size', type=int, default=96*2, help='batch size')
修改對應(yīng) batch size 大小,保證每塊GPU獲得等量的訓(xùn)練數(shù)據(jù),因為batch_size的改變會影響訓(xùn)練精度
最容易實現(xiàn)的單GPU訓(xùn)練改為多GPU訓(xùn)練代碼
單GPU:logits, logits_aux = model(input)
多GPU:
if torch.cuda.device_count()>1:#判斷是否能夠有大于一的GPU資源可以調(diào)用 logits, logits_aux =nn.parallel.data_parallel(model,input) else: logits, logits_aux = model(input)
缺點:不是性能最好的實現(xiàn)方式
優(yōu)點:代碼嵌入適應(yīng)性強,不容易報錯
性能分析
該圖為1到8GPU訓(xùn)練cifar10——97.23網(wǎng)絡(luò)的實驗對比
可以看到單核訓(xùn)練600輪需要53小時、雙核訓(xùn)練600輪需要26小時、四核16、六核14、八核13。
在可運行7小時的GPU上的對比實驗:單核跑完83輪、雙核跑完163輪、四核跑完266輪
結(jié)論:性價比較高的是使用4~6核GPU進行訓(xùn)練,但是多GPU訓(xùn)練對于單GPU訓(xùn)練有所差異,訓(xùn)練的準(zhǔn)確率提升會有所波動,目前發(fā)現(xiàn)的是負(fù)面的影響。
以上這篇關(guān)于pytorch多GPU訓(xùn)練實例與性能對比分析就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)去除Excel重復(fù)數(shù)據(jù)并統(tǒng)計重復(fù)次數(shù)
這篇文章主要為大家詳細(xì)介紹了如何利用Python語言實現(xiàn)文本數(shù)據(jù)去重,創(chuàng)建包含唯一值的新列,并統(tǒng)計文本數(shù)據(jù)出現(xiàn)的次數(shù),需要的可以參考下2023-08-08Python中卷積神經(jīng)網(wǎng)絡(luò)(CNN)入門教程分分享
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)是一類特別適用于處理圖像數(shù)據(jù)的深度學(xué)習(xí)模型,本文介紹了如何使用Keras創(chuàng)建一個簡單的CNN模型,并用它對手寫數(shù)字進行分類,需要的可以參考一下2023-05-05Python代碼顯得Pythonic(區(qū)別于其他語言的寫法)
這篇文章主要介紹了Python代碼顯得Pythonic(區(qū)別于其他語言的寫法),對于字符串連接,相比于簡單的+,更pythonic的做法是盡量使用%操作符或者format函數(shù)格式化字符串,感興趣的小伙伴和小編一起進入文章了解更詳細(xì)相關(guān)知識內(nèi)容吧2022-02-02python 五子棋如何獲得鼠標(biāo)點擊坐標(biāo)
這篇文章主要介紹了python 五子棋如何獲得鼠標(biāo)點擊坐標(biāo),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11一個月入門Python爬蟲學(xué)習(xí),輕松爬取大規(guī)模數(shù)據(jù)
利用爬蟲我們可以獲取大量的價值數(shù)據(jù),從而獲得感性認(rèn)識中不能得到的信息,這篇文章給大家?guī)砹艘粋€月入門Python學(xué)習(xí),爬蟲輕松爬取大規(guī)模數(shù)據(jù),感興趣的朋友一起看看吧2018-01-01Django數(shù)據(jù)庫(SQlite)基本入門使用教程
django有默認(rèn)自帶的數(shù)據(jù)庫,當(dāng)然也可以用其他的數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Django數(shù)據(jù)庫(SQlite)基本入門使用教程的相關(guān)資料,需要的朋友可以參考下2022-07-07