未經(jīng)允許珊搀,不得轉(zhuǎn)載,謝謝~~
PyTorch是一個深度學(xué)習(xí)的框架弹砚。
簡單記錄整理迟蜜。
Pytorch是什么
基于Python的科學(xué)計算包:
- 代替numpy能使用GPU進行計算
- 靈活性很高的一個深度學(xué)習(xí)研究平臺
Tensor的基本用法
Tensor(張量)跟numpy的數(shù)組很像无切,但是它可以使用GPU來進行計算的加速荡短。
import packet
from __future__ import print_function
import torch
Construct a 5x3 matrix, uninitialized:
x = torch.Tensor(5, 3)
print(x)
Construct a randomly initialized matrix
x = torch.rand(5, 3)
print(x)
Get its size
print(x.size())
torch.Size本質(zhì)是元祖tuple
addition of Tensors
以下的運行結(jié)果都是一樣的。
x=torch.rand(5,3)
y=torch.rand(5,3)
# syntax 1
print(x + y)
# syntax 2
print(torch.add(x, y))
# syntax 3 - giving an output tensor
result = torch.Tensor(5, 3)
torch.add(x, y, out=result)
print(result)
# syntax 4 - in-place
y.add_(x)
print(y)
numpy-like indexing
像numpy一樣的用法來索引哆键。
print(x[:, 1])
numpy array 與 torch Tensor的相互轉(zhuǎn)換
- 這里的轉(zhuǎn)換相對應(yīng)的array與Tensor共享同一塊內(nèi)存掘托,改變一個也會改變另外一個。
- 所有還在CPU上運行的Tensor除了CharTensor之外都支持與numpy Array的相互轉(zhuǎn)化籍嘹。
Tensor轉(zhuǎn)為array
a = torch.ones(5)
print(a)
# convert from tensor to Array
b = a.numpy()
print(b)
# share the same memory
a.add_(1)
print(a)
print(b)
Array 轉(zhuǎn)為 Tensor
import numpy as np
a = np.ones(5)
# convert from array to Tensor
b = torch.from_numpy(a)
np.add(a, 1, out=a)
# share the same memory
print(a)
print(b)
CUDA Tensors
用.cuda函數(shù)可以講張量移到GPU上
if torch.cuda.is_available():
print ("succ")
x = x.cuda()
y = y.cuda()
x + y
more
關(guān)于Tensor的操作闪盔,例如轉(zhuǎn)置, 索引,切片辱士,數(shù)學(xué)計算等都可以在更多Tensor操作中找到泪掀。
基本就是對官網(wǎng)的getting started的一個小小翻譯,能力有限颂碘,權(quán)當(dāng)自己做筆記吧~~~