pytorch 如何用cuda處理數(shù)據(jù)_第1頁
pytorch 如何用cuda處理數(shù)據(jù)_第2頁
pytorch 如何用cuda處理數(shù)據(jù)_第3頁
pytorch 如何用cuda處理數(shù)據(jù)_第4頁
pytorch 如何用cuda處理數(shù)據(jù)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第pytorch如何用cuda處理數(shù)據(jù)如果網絡的輸入數(shù)據(jù)維度或類型上變化不大,設置torch.backends.cudnn.benchmark=true

可以增加運行效率;

如果網絡的輸入數(shù)據(jù)在每次iteration都變化的話,會導致cnDNN每次都會去尋找一遍最優(yōu)配置,

這樣反而會降低運行效率。

這下就清晰明了很多了。

Benchmark模式會提升計算速度,但是由于計算中有隨機性,每次網絡前饋結果略有差異。

torch.backends.cudnn.benchmark=True

如果想要避免這種結果波動,設置:

torch.backends.cudnn.deterministic=True

'''

這句話也很常見,設置默認的device,優(yōu)先gpu。

device='cuda'iftorch.cuda.is_available()else'cpu'

cpu挪到gpu

#也可以是device=torch.device('cuda:0')

device=torch.device('cuda')

a=torch.tensor([1,2,3])

b=a.to(device)

print(a)

print(b)

out:

tensor([1,2,3])

tensor([1,2,3],device='cuda:0')

判斷變量是否基于GPU。

a.is_cuda

查看有幾個可用GPU。

torch.cuda.device_count()

查看GPU算力

#返回gpu最大和最小計算能力,是一個tuple

torch.cuda.get_device_capability()

設置默認哪一個GPU運算。

#里面輸入int類型的數(shù)字

torch.cuda.set_device()

抓取指定gpu的全名。

iftorch.cuda.is_available():

device=torch.device('cuda')

print('UsingGPU:',torch.cuda.get_device_name(0))

out:

'GeForceGTX1050'

2直接在gpu創(chuàng)建

方法一:

a=torch.ones(3,4,device="cuda")

print(a)

out:

tensor([[1.,1.,1.,1.],

[1.,1.,1.,1.],

[1.,1.,1.,1.]],device='cuda:0')

方法二:

a=torch.cuda.FloatTensor(3,4)

print(a)

out:

tensor([[-1.,-1.,-1.,-1.],

[-1.,-1.,-1.,-1.],

[-1.,-1.,-1.,-1.]],device='cuda:0')

3從cpu轉移到gpu

方法一:tensor.to()

a=torch.ones(3,4)

b=a.to("cuda")

print(a)

print(b)

out:

tensor([[1.,1.,1.,1.],

[1.,1.,1.,1.],

[1.,1.,1.,1.]])

tensor([[1.,1.,1.,1.],

[1.,1.,1.,1.],

[1.,1.,1.,1.]],device='cuda:0')

注意:.to()不僅可以轉移device,還可以修改數(shù)據(jù)類型,比如:a.to(torch.double)

方法二:tensor.cuda()

a=torch.tensor([1.,2.]).cuda()

方法三:tensor.type()

dtype=torch.cuda.FloatTensor

x=torch.rand(2,2).type(dtype)

方法四:torch.from_numpy(np_labels).cuda()

wm_labels=torch.from_numpy(np_labels).cuda()

4在cuda中訓練模型

在默認情況下,模型參數(shù)的優(yōu)化(即訓練)是在cpu上進行的,如果想要挪到GPU,得做如下修改:

importtorch.nnasnn

#假設前面已經定義好了模型

#創(chuàng)建模型

Hidnet=UnetGenerator_mnist()

#把模型放入GPU

Hidnet=nn.DataParallel(Hidnet.cuda())

#查看模型參數(shù)

list(Hidnet.parameters())[0]

out:

Parametercontaining:

tensor([[[[0.1315,0.0562,0.1186],

[-0.1158,0.1394,-0.0399],

[0.1728,0.1051,-0.1034]],

[[0.1702,-0.1208,-0.1134],

[-0.1449,0.1912,0.1727],

[0.1562,0.1601,0.1055]],

[[0.1031,-0.0062,-0.0068],

[-0.0453,0.1150,0.0366],

[0.0680,-0.1234,-0.0988]]]],device='cuda:0',requires_grad=True)

可以看到device=‘cuda:0'啦

pytorch查看cuda版本

由于

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論