您好,登錄后才能下訂單哦!
這篇文章主要介紹pytorch如何使用單個GPU與多個GPU進行訓練與測試,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
如下所示:
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")#第一行代碼 model.to(device)#第二行代碼
首先是上面兩行代碼放在讀取數據之前。
mytensor = my_tensor.to(device)#第三行代碼
然后是第三行代碼。這句代碼的意思是將所有最開始讀取數據時的tersor變量copy一份到device所指定的GPU上去,之后的運算都在GPU上進行。需要注意的是這句話并不像前面的兩行代碼一樣只需要寫一遍,第三行代碼需要寫的次數就等于需要保存到GPU上的tensor變量個數;一般情況下這些tensor變量都是最開始讀取數據時的tensor變量,后面所衍生的變量自然也都在GPU之上。
以上是使用單個GPU的情況。當你擁有多個GPU時,要想使用多個GPU進行訓練和測試,需要在第一二行代碼之間插上下面這樣一個判斷語句,其余的寫法也都是一樣的。
if torch.cuda.device_count() > 1: model = nn.DataParallel(model)
使用多個GPU的原理就是通過上面這句代碼將model在每個GPU上分別保存一份,然后對model的輸入tensor進行自動的分割,每個GPU計算tensor的一部分,這樣就能實現計算量的平均分配。在每個model計算完成之后,DataParallel將這些結果進行收集和融合,之后再將結果返回。
以上是“pytorch如何使用單個GPU與多個GPU進行訓練與測試”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。