pytorch如何使用多塊gpu

時間 2021-05-06 20:04:28

1樓:東方碩

自己寫的多卡訓練框架,可多機多卡,供參考

artintel2017/torch-multi-gpu原答案:

最近剛花幾天時間搞了下torch.distributed,寫了個demo測試一下,發現確實如官方文件所說,比DataParallel快,而且是快很多。4卡用DataParallel,2.

7倍速度;用distributed,3.7倍。

2樓:

3樓:謎一樣的男子

關於多機多卡,horovod是很棒的解決方案,但是如果面對的是沒有sudo許可權的伺服器,可以考慮這個解決方法:

謎一樣的男子:Pytorch多機多卡分布式訓練

4樓:光景延年

前面提到的大多是單機多卡的方式,如需要多機多卡,請檢視pytorch的dist,使用它需要類似tf多卡進行手動的梯度平均,並且關於BN操作,可能也需要進行額外的操作保證多機直接bn mean和var的同步

5樓:

net=nn.DataParallel(net)最無腦的方法,把整個網路分布到多個GPU中,然後把batch_size調大N倍(記憶體夠用的前提下)

我試了下 AWS的p2*8(8塊K80)在batch_size合適的情況下,我的乙個實驗可以比p2單塊卡的instance快大概5-6倍。

這個函式似乎可以用的更細膩,讓網路的一部分在多個卡里並行。但是我暫時不知道這麼做的意義和應用..

6樓:Osris

import

torch.nn

asnn

# instantiation

net=

MyNet

.Net

()# Parallel Computingnet=nn.

DataParallel

(net

)net

=net

.cuda

()慚愧(ㄒoㄒ)

pytorch裡如何使用logger儲存訓練引數日誌?

vmn171 不知道說的儲存是什麼引數 一些是可以提前定義,需要經常調整或自動搜尋的超引數 比如實驗名,batch size,epoch,lr 建議寫入argparse中,隨便寫入乙個字典也行,需要記錄的時候直接列印argparse就可以。一些如網路 優化器什麼的,生成例項以後,直接print mo...

如何在Python中使用break跳出多層迴圈?

浮生若夢 我覺得這裡if和else它確實不在同一級,這樣也不會錯,因為這裡應該還是會知道else是跟著前面的if的,只是迴圈裡面執行完了if肯定就不會執行else了 不管else屬於哪一層級 唉純屬個人見解,我也才學Python遇到這個問題,有問題請大家糾正 已登出 今天搜到這個問題是因為寫乙個解析...

大學生畢業後手持5萬塊如何使用?

楊帥 五萬真的不多,在大城市,租房 好一些的 也就一年花光,如果倆個人生活,也就不到一年。你到知乎問這個問題肯定大多數人跟你說買書,報班之類的充實自己。這沒錯。除此之外,看著花吧,這筆錢可以讓你不用在畢業後面臨困難的時候太過拮据,也可以在你找到專案需要投資的時候集中你自己的力量,資金。錢不是你屁股下...