日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

PyTorch 笔记(04)— Tensor 属性方法(获取元素个数numel/neleme、查看形状size()/shape、增减维度squeeze()/unsqueeze()、resize形状)

發(fā)布時(shí)間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PyTorch 笔记(04)— Tensor 属性方法(获取元素个数numel/neleme、查看形状size()/shape、增减维度squeeze()/unsqueeze()、resize形状) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 獲取 Tensor 元素個(gè)數(shù)

獲取 Tensor 的元素個(gè)數(shù) ,a.numel() 等價(jià) a.nelement()

In [1]: import torch as t                                                                                      In [5]: a = t.Tensor(2,3)                                                                                               
In [6]: a                                                                                                                                                            
Out[6]: 
tensor([[1.2116e+30, 4.5695e-41, 2.1064e-36],[0.0000e+00,        nan, 4.5695e-41]])In [7]: a.numel()                                                                                                                                                    
Out[7]: 6In [8]: a.nelement()                                                                                                                                                 
Out[8]: 6

2. 查看 Tensor 的形狀

查看 Tensor 的形狀,Tensor.size() 返回 torch.Size() 對象, Tensor.shape 等價(jià)于 Tensor.size()

In [13]: c.size()                                                                       
Out[13]: torch.Size([2])In [14]: b.size()                                                                        
Out[14]: torch.Size([2, 2])In [15]: a.size()                                                               
Out[15]: torch.Size([2, 3])In [19]: c.shape                                                                  
Out[19]: torch.Size([2])In [20]: b.shape                                                                  
Out[20]: torch.Size([2, 2])In [21]: a.shape                                                                   
Out[21]: torch.Size([2, 3])

3. 調(diào)整 tensor 的形狀

通過 tensor.view 方法可以調(diào)整 tensor 的形狀,但必須保證調(diào)整前后的元素總數(shù)保持一致,view 不會(huì)修改自身的數(shù)據(jù),返回的新 tensor 與源 tensor 共享內(nèi)存,即更改其中一個(gè),另外一個(gè)也跟著改變。

In [1]: import torch as t   
In [31]: a = t.arange(1,6)                                                                                                                                           In [32]: a                                                                                                                                                           
Out[32]: tensor([1, 2, 3, 4, 5])In [33]: a = t.arange(0,6)                                                                                                                                           In [34]: a                                                                                                                                                           
Out[34]: tensor([0, 1, 2, 3, 4, 5])In [35]: b = a.view(2,3)                                                                                                                                             In [36]: b                                                                                                                                                           
Out[36]: 
tensor([[0, 1, 2],[3, 4, 5]])In [37]: c = a.view(-1, 3)      # 某一維度為 -1 時(shí)會(huì)自動(dòng)計(jì)算它的大小                                                                                                                                       In [38]: c                                                                                                                                                           
Out[38]: 
tensor([[0, 1, 2],[3, 4, 5]])In [39]: c[0,1] = 100                                                                                                                                                In [40]: a                                                                                                                                                           
Out[40]: tensor([  0, 100,   2,   3,   4,   5])In [41]: b                                                                                                                                                           
Out[41]: 
tensor([[  0, 100,   2],[  3,   4,   5]])In [42]: c                                                                                                                                                           
Out[42]: 
tensor([[  0, 100,   2],[  3,   4,   5]])In [43]:  

4. 增加減少 Tensor 維度

添加或減少某一維度,可以使用 squeezeunsqueeze 函數(shù)。

In [43]: b                                                                                                                                                           
Out[43]: 
tensor([[  0, 100,   2],[  3,   4,   5]])In [45]: b.shape                                                                                                                                                     
Out[45]: torch.Size([2, 3])In [46]: d = b.unsqueeze(1)     # 在第一維下標(biāo)從0開始,增加1                            In [47]: d                                                                      
Out[47]: 
tensor([[[  0, 100,   2]],[[  3,   4,   5]]])In [48]: d.shape                                                                                                                                                     
Out[48]: torch.Size([2, 1, 3])In [49]: d.squeeze(1)                                                                                                                                                
Out[49]: 
tensor([[  0, 100,   2],[  3,   4,   5]])In [50]: d.squeeze(1).shape                                                                                                                                          
Out[50]: torch.Size([2, 3])

5. 修改 Tensor 形狀

resize 是另一種可用來調(diào)整 size 的方法,但與 view 不同,它可以修改 tensor 的尺寸,如果新尺寸超過了源尺寸,會(huì)自動(dòng)分配新的內(nèi)存空間,而如果新尺寸小于源尺寸,則之前的數(shù)據(jù)依舊會(huì)被保存。

In [51]: b                                                                                                                                                           
Out[51]: 
tensor([[  0, 100,   2],[  3,   4,   5]])In [52]: b.resize_(1,3)                                                                                                                                              
Out[52]: tensor([[  0, 100,   2]])In [53]: b                                                                                                                                                           
Out[53]: tensor([[  0, 100,   2]])In [54]: b.resize_(3,3)                                                                                                                                              
Out[54]: 
tensor([[                  0,                 100,                   2],[                  3,                   4,                   5],[2314885530818447916, 2331492554444382240, 2318280896059485744]])In [55]: 

總結(jié)

以上是生活随笔為你收集整理的PyTorch 笔记(04)— Tensor 属性方法(获取元素个数numel/neleme、查看形状size()/shape、增减维度squeeze()/unsqueeze()、resize形状)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。