1、torch.cat():是將兩個張量(tensor)拼接在一起。
C = torch.cat( (A,B),0 ) #按維數0拼接(行數增加)
C = torch.cat( (A,B),1 ) #按維數1拼接(列數增加)
2、tensor.expand_as():把一個tensor變成和函數括號內一樣形狀的tensor
3、tensor.narrow(dim,index,number):dim-取行/列;index-從索引index開始取;number-取的行數/列數
4、contiguous():在調用view()之前需要先調用contiguous()
5、tensor.contiguous().view():范數的數據和傳入的tensor一樣,只是形狀不同;注意view()返回的tensor和傳入的tensor共享內存,意思就是只要修改其中一個,數據都會變;如果出現-1,-1表示讓電腦幫助我們計算,看例子:
import torch a = torch.arange(0,20) #此時a的shape是(1,20)
a.view(4,5).shape #輸出為(4,5)
a.view(-1,5).shape #輸出為(4,5)
a.view(4,-1).shape #輸出為(4,5)
6、tensor.transpose(0,1):將0維與1為交互,即轉置
7、Tensor.uniform_(from=-1, to=1):將tensor用從均勻分布中抽樣得到的值填充
a = torch.Tensor(2, 3).uniform_(-1, 1)
8、Tensor.fill_(1):用指定的數填充tensor
a = torch.Tensor(2,3).fill_(1)
9、Tensor.new():創建一個新的Tensor,該Tensor的type和device都和原有的Tensor保持一致,且該Tensor中無內容;
inputs = torch.randn(m, n) new_inputs = inputs.new() new_inputs = torch.Tensor.new(inputs) #實際應用(添加噪聲),可以對Tensor添加噪聲,添加如下代碼即可實現: noise = inputs.data.new(inputs.size()).normal_(0,0.01) #Tensor.data:從原有計算中分離(復制)出來的一個tensor變量(不安全)
10、Tensor.squeeze() & Tensor.unsqueeze() & view():
1 a = torch.arange(0, 9) 2 print(a.shape) # torch.Size([9]) 3 4 # 1、利用view()改變tensor的形狀。值得注意的是view不會修改自身的數據,返回的新tensor與源tensor共享內存;同時必須保證前后元素總數一致。 5 b = a.view(3, 3) 6 print(b.shape) # torch.Size([2, 5]) 7 8 # 2、unsqueeze()該函數用來增加某個維度。在PyTorch中維度是從0開始的 9 # 在第一個維度(即維度序號為0)前增加一個維度。同理,可在其他位置添加維度 10 c = b.unsqueeze(0) 11 print(c.shape) # torch.Size([1, 3, 3]) 12 13 d = c.unsqueeze(2) 14 print(d.shape) # torch.Size([1, 3, 3]) 15 16 # 3、squeeze():該函數用來減少某個維度。 17 e = d.squeeze(2) 18 print(e.shape)
11、
12、
13、
14、
15、