pytorch框架的基本使用

2021-10-10 18:09:35 字數 2262 閱讀 9727

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