pytorch總結學習系列 資料操作

2021-10-01 19:27:46 字數 2301 閱讀 9705

在深度學習中,我們通常會頻繁地對資料進⾏行行操作。作為動⼿手學深度學習的基礎,本節將介紹如何對內

存中的資料進⾏行行操作。

在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...