PyTorch随笔-3
特定數(shù)據(jù)類型的tensor可以被構(gòu)造,通過 torch.dtype和/或torch.device,對(duì)于構(gòu)造函數(shù)或張量創(chuàng)建操作。
>>> cuda0 = torch.device('cuda:0') >>> torch.ones([2, 4], dtype=torch.float64, device=cuda0) tensor([[ 1.0000, 1.0000, 1.0000, 1.0000],[ 1.0000, 1.0000, 1.0000, 1.0000]], dtype=torch.float64, device='cuda:0')可以使用Python的索引和切片表示法訪問和修改tensor的內(nèi)容:
import torch y=torch.tensor([[1,2],[3,4]]) print(y) print(y[1,:]) print(y[:,0]) print(y[:,1]) tensor([[1, 2],[3, 4]]) tensor([3, 4]) tensor([1, 3]) tensor([2, 4])使用 torch.Tensor.item() 從包含單個(gè)值的張量中獲取Python數(shù),請(qǐng)執(zhí)行以下操作:
import torch y=torch.tensor([[1,2],[3,4]]) print(y)print(y[1,1].item()) tensor([[1, 2],[3, 4]]) 4可以使用requires_grad=True創(chuàng)建張量,以便torch.autograd記錄對(duì)它們的操作以進(jìn)行自動(dòng)區(qū)分。
import torch x = torch.tensor([[1., 2.], [3., 4.]], requires_grad=True) out = x.pow(2).sum() out.backward() print(x.grad) tensor([[2., 4.],[6., 8.]])每個(gè) tensor 都有一個(gè)相關(guān)的 torch.Storage,,它保存數(shù)據(jù)。tensor類還提供了存儲(chǔ)的多維、跨視圖,并定義了對(duì)存儲(chǔ)的數(shù)字操作。
改變tensor的方法用下劃線后綴標(biāo)記。例如,torch.FloatTensor.abs_()就地計(jì)算絕對(duì)值并返回修改后的張量,而torch.FloatTensor.abs_()以新的tensor張量計(jì)算結(jié)果。
改變現(xiàn)有的張量 torch.device 和/或torch.dtype,考慮對(duì)張量使用to()方法。
當(dāng)前執(zhí)行的 torch.Tensor 引入內(nèi)存開銷,因此在具有許多小張量tensor的應(yīng)用程序中可能會(huì)導(dǎo)致意外的高內(nèi)存使用率
總結(jié)
以上是生活随笔為你收集整理的PyTorch随笔-3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot默认包扫描机制及@C
- 下一篇: SpringAOP+自定义注解实现日志功