午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

PyTorch(二)——張量基本概念與常用操作

 taotao_2016 2019-09-10

張量(Tensor)

幾何代數(shù)中定義的張量是基于向量和矩陣的推廣,通俗一點(diǎn)來(lái)理解,我們可以將標(biāo)量視為零階張量,矢量視為一階張量,那么矩陣就是二階張量。

PyTorch(二)——張量基本概念與常用操作

張量

在PyTorch中,張量Tensor是最基礎(chǔ)的運(yùn)算單位,與NumPy中的NDArray類似,張量表示的是一個(gè)多維矩陣。不同的是,PyTorch中的Tensor可以運(yùn)行在GPU上,而NumPy的NDArray只能運(yùn)行在CPU上。由于Tensor能在GPU上運(yùn)行,因此大大加快了運(yùn)算速度。

可以通過rand( )函數(shù)生成一個(gè)簡(jiǎn)單的張量,例如生成一個(gè)2行3列0-1的隨機(jī)數(shù)Tensor。

torch.rand(2, 3)

通過shape屬性或使用size( )函數(shù)可以查看Tensor的大小。

PyTorch(二)——張量基本概念與常用操作

查看Tensor大小

在同構(gòu)的意義下,我們?cè)O(shè)r為張量的秩或階,那么,第零階張量(r = 0)為標(biāo)量,第一階張量(r = 1)為向量,第二階張量(r = 2)為矩陣,第三階以上(r > 2)的統(tǒng)稱為多維張量。

Tensor基本數(shù)據(jù)類型

Tensor的常用基本數(shù)據(jù)類型主要有以下五種:

  1. 32位浮點(diǎn)型:torch.FloatTensor。Tensor的默認(rèn)數(shù)據(jù)類型。
  2. 64位浮點(diǎn)型:torch.DoubleTensor。
  3. 64位整型:torch.LongTensor。
  4. 32位整型:torch.IntTensor。
  5. 16位整:torch.ShortTensor。

此外,Tensor的數(shù)據(jù)類型還可以是byte或chart型。

PyTorch(二)——張量基本概念與常用操作

Tensor基本數(shù)據(jù)類型

Tensor初始化

除了使用rand( )函數(shù)外,PyTorch中還提供了許多初始化張量的方法,可以類比NumPy中對(duì)NDArray的初始化。

randn( ):初始化一個(gè)均值為0,方差為1的隨機(jī)數(shù)Tensor。

ones( ):初始化一個(gè)全為1的Tensor。

zeros( ):初始化一個(gè)全為0的Tensor。

eye( ):初始化一個(gè)主對(duì)角線為1,其余都為0的Tensor(只能是二階,即矩陣)。

PyTorch(二)——張量基本概念與常用操作

Tensor初始化

Tensor常用API

PyTorch對(duì)Tensor的操作與NumPy對(duì)NDArray的操作非常相似,因此在學(xué)習(xí)Tensor時(shí)可以經(jīng)常對(duì)比NDArray。事實(shí)上,它們兩者基本就是一致的。

max( )/min( ):沿行或列取最大值/最小值。參數(shù)dim=0表示沿列,dim=1表示沿行。返回value(值)和idx(索引)。

PyTorch(二)——張量基本概念與常用操作

max()/min()

sum( ):沿行/列求和。

PyTorch(二)——張量基本概念與常用操作

sum()

基本四則運(yùn)算。

PyTorch(二)——張量基本概念與常用操作

基本四則運(yùn)算

add( )與add_( ):以_為結(jié)尾的會(huì)改變調(diào)用值本身。

PyTorch(二)——張量基本概念與常用操作

add( )與add_( )

mm( ):矩陣乘法。

PyTorch(二)——張量基本概念與常用操作

mm( )

PyTorch的Tensor與NumPy的NDArray轉(zhuǎn)換

使用PyTorch的numpy( )函數(shù)將Tensor轉(zhuǎn)換為NDArray。

PyTorch(二)——張量基本概念與常用操作

Tensor轉(zhuǎn)NDArray

使用PyTorch的from_numpy( )函數(shù)將NDArray轉(zhuǎn)換為Tensor。

PyTorch(二)——張量基本概念與常用操作

NDArray轉(zhuǎn)Tensor

Tensor運(yùn)行設(shè)備(GPU與CPU)轉(zhuǎn)換

一般情況下可以使用cuda( )函數(shù)將Tensor轉(zhuǎn)移到GPU上運(yùn)行,當(dāng)然這步操作需要cuda設(shè)備的支持。

PyTorch(二)——張量基本概念與常用操作

將Tensor轉(zhuǎn)移到GPU上運(yùn)行

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多