torch.device用法总结
torch.device用法總結(jié)
- 1 通過字符串構(gòu)造設(shè)備
- 2 通過字符串+序號構(gòu)造設(shè)備
- 3注意事項
- 3.1可直接使用字符串構(gòu)建
- 3.2 有cuda的也可直接輸入序號
- 3.3 以下示例均等效
torch.device代表將torch.Tensor分配到的設(shè)備的對象。
torch.device包含一個設(shè)備類型('cpu'或'cuda'設(shè)備類型)和可選的設(shè)備的序號。如果設(shè)備序號不存在,則為當(dāng)前設(shè)備;
例如,torch.Tensor用設(shè)備構(gòu)建'cuda'的結(jié)果等同于'cuda:X',其中X是torch.cuda.current_device()的結(jié)果。
torch.Tensor的設(shè)備可以通過Tensor.device訪問屬性。
構(gòu)造torch.device可以通過字符串/字符串和設(shè)備編號。如下:
1 通過字符串構(gòu)造設(shè)備
>>> torch.device('cpu') device(type='cpu')>>> torch.device('cuda') # current cuda device device(type='cuda')2 通過字符串+序號構(gòu)造設(shè)備
>>> torch.device('cuda', 0) device(type='cuda', index=0)>>> torch.device('cpu', 0) device(type='cpu', index=0)3注意事項
3.1可直接使用字符串構(gòu)建
torch.device函數(shù)中的參數(shù)通??梢杂靡粋€字符串替代。這允許使用代碼快速構(gòu)建原型。
>> # Example of a function that takes in a torch.device >> cuda1 = torch.device('cuda:1') >> torch.randn((2,3), device=cuda1) >> # You can substitute the torch.device with a string >> torch.randn((2,3), 'cuda:1')兩種方法等同
3.2 有cuda的也可直接輸入序號
出于傳統(tǒng)原因,可以通過單個設(shè)備序號構(gòu)建設(shè)備,將其視為cuda設(shè)備。這匹配Tensor.get_device(),它為cuda張量返回一個序數(shù),并且不支持cpu張量。
>> torch.device(1) device(type='cuda', index=1)3.3 以下示例均等效
指定設(shè)備的方法可以使用(properly formatted)字符串或(legacy)整數(shù)型設(shè)備序數(shù),即以下示例均等效:
>> torch.randn((2,3), device=torch.device('cuda:1')) >> torch.randn((2,3), device='cuda:1') >> torch.randn((2,3), device=1) # legacy轉(zhuǎn)自https://ptorch.com/news/187.html
總結(jié)
以上是生活随笔為你收集整理的torch.device用法总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lattice学习笔记(一)
- 下一篇: 【翻译】torch.device的使用举