真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PyTorch基本數(shù)據(jù)類型有哪些-創(chuàng)新互聯(lián)

小編給大家分享一下PyTorch基本數(shù)據(jù)類型有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)為您提適合企業(yè)的網(wǎng)站設(shè)計?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競爭力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè), 我們的網(wǎng)頁設(shè)計師為您提供的解決方案。

1)Tensor(張量)

Pytorch里面處理的最基本的操作對象就是Tensor(張量),它表示的其實就是一個多維矩陣,并有矩陣相關(guān)的運算操作。在使用上和numpy是對應(yīng)的,它和numpy唯一的不同就是,pytorch可以在GPU上運行,而numpy不可以。所以,我們也可以使用Tensor來代替numpy的使用。當(dāng)然,二者也可以相互轉(zhuǎn)換。

Tensor的基本數(shù)據(jù)類型有五種:

  • 32位浮點型:torch.FloatTensor。pyorch.Tensor()默認(rèn)的就是這種類型。

  • 64位整型:torch.LongTensor。

  • 32位整型:torch.IntTensor。

  • 16位整型:torch.ShortTensor。

  • 64位浮點型:torch.DoubleTensor。

那么如何定義Tensor張量呢?其實定義的方式和numpy一樣,直接傳入相應(yīng)的矩陣即可即可。下面就定義了一個三行兩列的矩陣:

import torch
# 導(dǎo)包
 
a = torch.Tensor([[1, 2], [3, 4], [5, 6]])
print(a)

不過在項目之中,更多的做法是以特殊值或者隨機(jī)值初始化一個矩陣,就像下面這樣:

import torch
 
# 定義一個3行2列的全為0的矩陣
b = torch.zeros((3, 2))
 
# 定義一個3行2列的隨機(jī)值矩陣
c = torch.randn((3, 2))
 
# 定義一個3行2列全為1的矩陣
d = torch.ones((3, 2))
 
print(b)
print(c)
print(d)

Tensor和numpy.ndarray之間還可以相互轉(zhuǎn)換,其方式如下:

  • Numpy轉(zhuǎn)化為Tensor:torch.from_numpy(numpy矩陣)

  • Tensor轉(zhuǎn)化為numpy:Tensor矩陣.numpy()

范例如下:

import torch
import numpy as np
 
# 定義一個3行2列的全為0的矩陣
b = torch.randn((3, 2))
 
# tensor轉(zhuǎn)化為numpy
numpy_b = b.numpy()
print(numpy_b)
 
# numpy轉(zhuǎn)化為tensor
numpy_e = np.array([[1, 2], [3, 4], [5, 6]])
torch_e = torch.from_numpy(numpy_e)
 
print(numpy_e)
print(torch_e)

之前說過,numpy與Tensor大的區(qū)別就是在對GPU的支持上。Tensor只需要調(diào)用cuda()函數(shù)就可以將其轉(zhuǎn)化為能在GPU上運行的類型。

我們可以通過torch.cuda.is_available()函數(shù)來判斷當(dāng)前的環(huán)境是否支持GPU,如果支持,則返回True。所以,為保險起見,在項目代碼中一般采取“先判斷,后使用”的策略來保證代碼的正常運行,其基本結(jié)構(gòu)如下:

import torch
 
# 定義一個3行2列的全為0的矩陣
tmp = torch.randn((3, 2))
 
# 如果支持GPU,則定義為GPU類型
if torch.cuda.is_available():
  inputs = tmp.cuda()
# 否則,定義為一般的Tensor類型
else:
  inputs = tmp

2)Variable(變量)

Pytorch里面的Variable類型數(shù)據(jù)功能更加強(qiáng)大,相當(dāng)于是在Tensor外層套了一個殼子,這個殼子賦予了前向傳播,反向傳播,自動求導(dǎo)等功能,在計算圖的構(gòu)建中起的很重要的作用。Variable的結(jié)構(gòu)圖如下:

PyTorch基本數(shù)據(jù)類型有哪些

其中最重要的兩個屬性是:data和grad。Data表示該變量保存的實際數(shù)據(jù),通過該屬性可以訪問到它所保存的原始張量類型,而關(guān)于該 variable(變量)的梯度會被累計到.grad 上去。

在使用Variable的時候需要從torch.autograd中導(dǎo)入。下面通過一個例子來看一下它自動求導(dǎo)的過程:

import torch
from torch.autograd import Variable
 
# 定義三個Variable變量
x = Variable(torch.Tensor([1, 2, 3]), requires_grad=True)
w = Variable(torch.Tensor([2, 3, 4]), requires_grad=True)
b = Variable(torch.Tensor([3, 4, 5]), requires_grad=True)
 
# 構(gòu)建計算圖,公式為:y = w * x^2 + b
y = w * x * x + b
 
# 自動求導(dǎo),計算梯度
y.backward(torch.Tensor([1, 1, 1]))
 
print(x.grad)
print(w.grad)
print(b.grad)

上述代碼的計算圖為y = w * x^2 + b。對x, w, b分別求偏導(dǎo)為:x.grad = 2wx,w.grad=x^2,b.grad=1。代值檢驗可得計算結(jié)果是正確的。

以上是“PyTorch基本數(shù)據(jù)類型有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前題目:PyTorch基本數(shù)據(jù)類型有哪些-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://weahome.cn/article/djhdss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部