PyTorch安裝:
https://pytorch.org/get-started/locally/
PyTorch基礎:
張量:包括零維(常數),一維(數組/列表/元組),二維(矩陣)......
張量的創建:
torch.tensor(list/array/tuple) #把數組/列表/集合轉化為張量
torch.ones([2,3]) #創建形狀為[2,3]的,元素均為1的張量
torch.zeros([2,3]) #創建形狀為[2,3]的,元素均為0的張量
torch.empty([2,3]) #創建形狀為[2,3]的,元素服從正態分布的張量
torch.rand([2,3]) #創建形狀為[2,3]的,元素為0-1的張量
torch.randn([2,3]) #創建一個形狀為[2,3],元素均值為0標准差為1的數組
torch.randint(low,high,size=[]) 生成一個指定size,元素為low-high見隨機整數的張量
tensor屬性:
tensor.item() tensor中只有一個元素時用於獲取元素(多個元素會報錯)
tensor與numpy的轉換:
np_ts = tensor.numpy()
ts = torch.tensor(np_ts)
tensor.size(dim) tensor的形狀(可指定方向)
tensor.view(size) 改變tensor形狀
tensor.t(0,1) tensor的轉置(可指定維度)
tensor切片與索引:
類同於numpy
tensor方法:
tensor.max(dim) 獲取tensor中最大的元素(可指定維度,會同時返回索引)
tensor數據類型:
tensor.dtype 查看tensor的數據類型
tensor.int() 轉為int32
tensor.long() 轉為int64
tensor.float() 轉為float32
tensor.double() 轉為float64
tensor計算:
tensor+/-/*//tensor 形狀相同的矩陣對應位置進行操作(若形狀不同,滿足廣播條件,可進行廣播后操作)
tensor+/-/*//數字
tensor1.add_(tensor2) 將相加后的tensor賦值為tensor1
CUDA類型:
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
torch.tensor([2,3],device) #創建類型為cuda的tensor
tensor.to(device) #將已創建好的tensor轉為cuda類型的tensor
tensor.cpu() #將cuda類型的tensor轉化為cpu類型的tensor