在深度學習中,我們通常會頻繁地對資料進⾏行行操作。作為動⼿手學深度學習的基礎,本節將介紹如何對內
存中的資料進⾏行行操作。
在pytorch中,torch.tensor 是儲存和變換資料的主要⼯工具。如果你之前⽤用過numpy,你會發現
tensor 和numpy的多維陣列⾮非常類似。然⽽, tensor 提供gpu計算和⾃自動求梯度等更更多功能,這
些使 tensor 更更加適合深度學習。
tensor 是張量的意思,多維張量是乙個多維陣列,標量是0維張量,向量就是乙個1維張量,矩陣就是二維張量。
建立 tensor
首先匯入pytorch:
import torch
然後我們建立乙個5x3的未初始化的 tensor :
x = torch.empty(5, 3)
print(x)
輸出:tensor([[ 0.0000e+00, 1.5846e+29, 0.0000e+00],
[ 1.5846e+29, 5.6052e-45, 0.0000e+00],
[ 0.0000e+00, 0.0000e+00, 0.0000e+00],
[ 0.0000e+00, 0.0000e+00, 0.0000e+00],
[ 0.0000e+00, 1.5846e+29, -2.4336e+02]])
建立⼀乙個5x3的隨機初始化的 tensor :
輸出:tensor([[0.4963, 0.7682, 0.0885],
[0.1320, 0.3074, 0.6341],
[0.4901, 0.8964, 0.4556],
[0.6323, 0.3489, 0.4017],
[0.0223, 0.1689, 0.2939]])
建立⼀乙個5x3的long型全0的 tensor :
x = torch.zeros(5, 3, dtype=torch.long)
print(x)
輸出:tensor([[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
直接根據資料建立:
x = torch.tensor([5.5, 3])
print(x)
輸出:tensor([5.5000, 3.0000])
還可以通過現有的 tensor 來建立,此⽅方法會預設重⽤用輸⼊入 tensor 的⼀一些屬性,例例如資料型別,除⾮非
⾃自定義資料型別。
x = x.new_ones(5, 3, dtype=torch.float64) # 返回的tensor預設具有相同的
torch.dtype和torch.device
print(x)
x = torch.randn_like(x, dtype=torch.float) # 指定新的資料型別
print(x)
輸出:tensor([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=torch.float64)
tensor([[ 0.6035, 0.8110, -0.0451],
[ 0.8797, 1.0482, -0.0445],
[-0.7229, 2.8663, -0.5655],
[ 0.1604, -0.0254, 1.0739],
[ 2.2628, -0.9175, -0.2251]])
通過 shape 或者 size() 來獲取 tensor 的形狀:
print(x.size())
print(x.shape)
輸出:torch.size([5, 3])
torch.size([5, 3])
注意:返回的torch.size其實就是⼀乙個tuple, ⽀支援所有tuple的操作。
很多函式可以建立 tensor ,去翻翻官⽅就知道了了,下表給了了⼀一些常⽤用的作參考。
這些建立⽅方法都可以在建立的時候指定資料型別dtype和存放device(cpu/gpu)。
pytorch總結學習系列 操作
算術操作 在pytorch中,同一種操作可能有很多種形式,下 用加法作為 加法形式 x torch.tensor 5.5,3 y torch.rand 5,3 print x y 加法形式 print torch.add x,y 還可指定輸出 result torch.empty 5,3 torch...
pytorch系列之實用資料增強
pytorch資料增強 from pil import image,imagefilter from torchvision import datasets,transforms img image.open fn fn是路徑 記住pytorch資料增強傳入的格式是pil mg img.filter...
PyTorch學習總結 四 Utilities
這個類的例項不能手動建立。它們只能被pack padded sequence 例項化。torch.nn.utils.rnn.pack padded sequence 輸入 input seq length x batch size x input size 或 batch size x seq le...