欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch 改變tensor尺寸的實(shí)現(xiàn)

 更新時間:2020年01月03日 14:55:41   作者:大白菜--  
今天小編就為大家分享一篇pytorch 改變tensor尺寸的實(shí)現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

改變Tensor尺寸的操作

1.tensor.view

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

例:

In: import torch as t
   a = t.arange(0, 6)
   a.view(2, 3)
Out:tensor([[0, 1, 2],
    [3, 4, 5]])

In: b = a.view(-1, 3)#當(dāng)某一維為-1的時候,會自動計(jì)算它的大小
Out:tensor([[0, 1, 2],
    [3, 4, 5]])

2.tensor.unsqueeze 和 tensor.squeeze

tensor.unsqueeze 和 tensor.squeeze分別用于增加或減少tensor的某一維度。

例:

In: b.unsqueeze(1)#注意形狀, 在第1維(下標(biāo)從0開始)上增加“1”
Out:tensor([[[0, 1, 2]],
    [[3, 4, 5]]])
    
In: b.unsqueeze(-2) #-2表示倒數(shù)第二個維度
Out:tensor([[[0, 1, 2]],
    [[3, 4, 5]]])
    
In: c = b.view(1, 1, 1, 2, 3)
   c.unsqueeze(0)#壓縮第0維的“1”
Out:tensor([[[[[[0, 1, 2],
      [3, 4, 5]]]]]])
      
In: c.squeeze() #把所有維度為“1”的壓縮
Out:tensor([[0, 1, 2],
    [3, 4, 5]])
    
In:a[1] = 100
  b #a和b共享內(nèi)存,修改了a,b也變了
Out:tensor([[ 0, 100,  2],
    [ 3,  4,  5]])

3.tensor.resize

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

例:

In: b.resize_(1, 3)
Out:tensor([[ 0, 100,  2]])

In: b.resize_(3, 3)#舊的數(shù)據(jù)依舊保存著,多出的數(shù)據(jù)會分配新空間
Out:tensor([[         0,         100,          2],
    [         3,          4,          5],
    [         0,          0, 2323344073926471279]])

以上這篇pytorch 改變tensor尺寸的實(shí)現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論