pytorch是什麼?
facebook推出的深度學習框架 ,:它是乙個基於python的可續計算包,提供兩個高階功能:
1.具有強大的gpu加速的張量計算(如numpy)
2.包含自動求導系統的深度神經網路
pytorch與tensorflow的區別
pytorch的特點:
1.簡潔性(程式設計同python幾乎一致)
2.動態計算
3.visdom、tensorboardx
4.部署不方便
tensorflow的特點:
1.介面複雜
2.靜態圖
3.tensorboard
4.部署方便(tf serving)
靜態圖與動態圖:
靜態圖:先搭建計算圖,後執行;這樣的好處是,它允許編譯器進行優化,缺點是不實時可見,不方便除錯
動態圖:編好程式即可執行
pytorch的優點:
活躍度:逐漸形成了完整的開發生態,資源多
框架的優雅型,對於初學者的友好性(動態圖的架構)
**簡潔,易於理解和除錯
pytorch的安裝與環境搭建:
張量是什麼
1.更高維度的資料,張量實際是對標量、向量、矩陣更加泛化的定義,它們都屬於張量
2.標量是0階張量,向量是1階張量,矩陣是2階張量
張量的建立:
import torch
a = torch.tensor([[1,2],[3,4]])
a = torch.tensor(2,5)
a = torch.ones(2,5)
a = torch.zeros(3,3)
a = torch.eye(3,3)
b = torch.zeros_like(a)
tensor與numpy非常相似,可以理解為在numpy的基礎上套了一層tensor
張量的算術運算
加法:c = torch.add(a, b)
c = a.add(b)
減法:c = torch.sub(a, b)
c = a.sub(b)
乘法:c = torch.mul(a, b)
c = a.mul(b)
除法:c = torch.div(a, b)
c = a.div(b)
開方,對數,矩陣運算,冪運算和對數運算。
tensor的索引和資料篩選:
torch.where(condition, a, b):按條件從a和b中選出滿足條件的元素組成新的tensor
torch.index_select(input, dim, index, out=none):按照指定索引輸出tensor
torch.masked_select(input, mask, out=none):按照mask輸出tensor,輸出為向量
torch.take(input, indices):將輸入看成1d-tensor,按照索引得到輸出tensor
torch.nonzero(input, out=none):輸出非0元素的座標
tensor的組合與拼接
orch.cat(seq, dim=0, out=none):按照已經存在的維度進行拼接
torch.stack(seq, dim=0, out=none):按照新的維度進行拼接
切片:torch.chunk(tensor, chunks, dim=0):按照某個維度平均分塊(最後乙個可能小於平均值)
torch.split(tensor, split_size_or_sections, dim=0):按照某個維度依照第二個引數給出的list或者int進行分割
tensor的變形操作和填充操作:
常用的變形操作函式:
torch.reshape(input, shape)
torch.t(input):只針對2d tensor轉置
torch.transpose(input, dim0, dim1):交換兩個維度
torch.squeeze(input, dim=none, out=none):去除那些維度大小為1的維度
torch.unbind(tensor, dim=0):去除某個維度
torch.unsqueeze(input, dim, out=none):在指定位置新增維度
torch.flip(input, dims):按照給定維度反轉張量
填充操作:
torch.full((*size), num) #定義乙個tensor,並填充指定的數值
Pytorch(二)基本API及使用
初始化tensor,tensor的變換,隨機初始化乙個tensor,上下文管理器torch.no grad 不進行梯度傳播。乘法中的廣播機制 對於兩個tensor,肯定是維度少的那個是broadcast矩陣。比如最後乙個,比如常見,乙個維度是 10,3,4 的矩陣,乘以乙個 4,5 的矩陣,其實是後...
MyBaits框架的基本使用
public inte ce 二 新增sqlsessionfactory 1.在mybaits的配置類中新增sqlsessionfactory類 2.sqlsessionfactory類的簡介 a.sqlsessionfactory類在mybatis框架中非常重要,sqlsessionfactory...
PyTorch學習1 PyTorch的基本資料型別
import torch import numpy as np a torch.randn 2,3 隨機初始化乙個2行3列的矩陣 print a print a.type torch.floattensor print type a print isinstance a,torch.floatten...