1. 程式人生 > 程式設計 >pytorch cuda上tensor的定義 以及減少cpu的操作詳解

pytorch cuda上tensor的定義 以及減少cpu的操作詳解

cuda上tensor的定義

a = torch.ones(1000,1000,3).cuda()

某一gpu上定義

cuda1 = torch.device('cuda:1')
b = torch.randn((1000,1000),device=cuda1)

刪除某一變數

del a

在cpu定義tensor然後轉到gpu

torch.zeros().cuda()

直接在gpu上定義,這樣就減少了cpu的損耗

torch.cuda.FloatTensor(batch_size,self.hidden_dim,self.height,self.width).fill_(0)

補充知識:pytorch cuda.FloatTensor->FloatTensor

錯誤型別:

RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor)

定義殘差塊時定義在model的外面,在使用gpu進行訓練的時候,殘差塊的引數是torch.FloatTensor型別,

雖然使用了model.cuda(),但是隻對model裡面的引數在gpu部分,所以把殘差塊對應的操作都在model的__init__(),

重新定義,即可解決問題

以上這篇pytorch cuda上tensor的定義 以及減少cpu的操作詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。