最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyTorch基本數(shù)據(jù)類(lèi)型(一)

 更新時(shí)間:2019年05月22日 09:03:07   作者:Liam Coder  
這篇文章主要為大家詳細(xì)介紹了PyTorch基本數(shù)據(jù)類(lèi)型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

PyTorch基礎(chǔ)入門(mén)一:PyTorch基本數(shù)據(jù)類(lèi)型

1)Tensor(張量)

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

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

  • 32位浮點(diǎn)型:torch.FloatTensor。pyorch.Tensor()默認(rèn)的就是這種類(lèi)型。
  • 64位整型:torch.LongTensor。
  • 32位整型:torch.IntTensor。
  • 16位整型:torch.ShortTensor。
  • 64位浮點(diǎn)型:torch.DoubleTensor。

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

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

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

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

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

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

范例如下:

import torch
import numpy as np
 
# 定義一個(gè)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)

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

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

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

2)Variable(變量)

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

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

在使用Variable的時(shí)候需要從torch.autograd中導(dǎo)入。下面通過(guò)一個(gè)例子來(lái)看一下它自動(dòng)求導(dǎo)的過(guò)程:

import torch
from torch.autograd import Variable
 
# 定義三個(gè)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)建計(jì)算圖,公式為:y = w * x^2 + b
y = w * x * x + b
 
# 自動(dòng)求導(dǎo),計(jì)算梯度
y.backward(torch.Tensor([1, 1, 1]))
 
print(x.grad)
print(w.grad)
print(b.grad)

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)井字棋小游戲

    Python實(shí)現(xiàn)井字棋小游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)井字棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python使用Pandas庫(kù)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)讀寫(xiě)

    Python使用Pandas庫(kù)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)讀寫(xiě)

    本次分享將介紹如何在Python中使用Pandas庫(kù)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的讀寫(xiě),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Python變量命名規(guī)范的總結(jié)

    Python變量命名規(guī)范的總結(jié)

    在Python編程中,變量命名規(guī)范對(duì)于編寫(xiě)優(yōu)雅和可維護(hù)的代碼至關(guān)重要,本文主要介紹了Python變量命名規(guī)范的總結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Python使用Pandas讀寫(xiě)Excel實(shí)例解析

    Python使用Pandas讀寫(xiě)Excel實(shí)例解析

    這篇文章主要介紹了Python使用Pandas讀寫(xiě)Excel實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 使用Python的matplotlib庫(kù)繪制柱狀圖

    使用Python的matplotlib庫(kù)繪制柱狀圖

    這篇文章主要介紹了使用Python的matplotlib庫(kù)繪制柱狀圖,Matplotlib是Python中最常用的可視化工具之一,可以非常方便地創(chuàng)建海量類(lèi)型地2D圖表和一些基本的3D圖表,可根據(jù)數(shù)據(jù)集自行定義x,y軸,繪制圖形,需要的朋友可以參考下
    2023-07-07
  • python畫(huà)圖時(shí)給圖中的點(diǎn)加標(biāo)簽和plt.text的使用

    python畫(huà)圖時(shí)給圖中的點(diǎn)加標(biāo)簽和plt.text的使用

    這篇文章主要介紹了python畫(huà)圖時(shí)給圖中的點(diǎn)加標(biāo)簽和plt.text的使用,利用matplotlib模塊畫(huà)各城市2019-nCoV疫情確診人數(shù)和節(jié)前流入人口數(shù)的圖的時(shí)候遇到了要給圖中的點(diǎn)加上標(biāo)簽示意,需要的朋友可以參考一下
    2022-03-03
  • 解決Pycharm輸入法無(wú)法切換中英文問(wèn)題

    解決Pycharm輸入法無(wú)法切換中英文問(wèn)題

    這篇文章主要介紹了解決Pycharm輸入法無(wú)法切換中英文問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實(shí)現(xiàn)優(yōu)先級(jí)隊(duì)列的方法示例

    Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實(shí)現(xiàn)優(yōu)先級(jí)隊(duì)列的方法示例

    這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)實(shí)現(xiàn)優(yōu)先級(jí)隊(duì)列的方法,結(jié)合實(shí)例形式分析了Python中基于給定優(yōu)先級(jí)進(jìn)行隊(duì)列元素排序的相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • Python3 requests文件下載 期間顯示文件信息和下載進(jìn)度代碼實(shí)例

    Python3 requests文件下載 期間顯示文件信息和下載進(jìn)度代碼實(shí)例

    這篇文章主要介紹了Python3 requests文件下載 期間顯示文件信息和下載進(jìn)度代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Centos7 下安裝最新的python3.8

    Centos7 下安裝最新的python3.8

    Python 3.8是Python語(yǔ)言的最新版本,它適合用于編寫(xiě)腳本、自動(dòng)化以及機(jī)器學(xué)習(xí)和Web開(kāi)發(fā)等各種任務(wù)。這篇文章主要介紹了Centos7 下安裝最新的python3.8,需要的朋友可以參考下
    2019-10-10

最新評(píng)論

芦溪县| 永吉县| 历史| 察雅县| 诏安县| 巴青县| 科尔| 连南| 娱乐| 义乌市| 北安市| 乌审旗| 高尔夫| 阿克苏市| 和顺县| 桃江县| 乃东县| 韶山市| 东至县| 长垣县| 西乌珠穆沁旗| 乌恰县| 宣恩县| 龙江县| 察雅县| 永新县| 昂仁县| 涡阳县| 浦江县| 德江县| 永顺县| 青阳县| 临夏市| 清镇市| 荔浦县| 松桃| 防城港市| 会同县| 双江| 合水县| 祁东县|