姓名:張慶慶
學(xué)號(hào):19021211151
嵌牛導(dǎo)讀:PyTorch作為深度學(xué)習(xí)的一種重要架構(gòu)很值得相關(guān)從業(yè)及技術(shù)人員學(xué)習(xí)
?嵌牛鼻子:PyTorch
嵌牛提問:什么是PyTorch,PyTorch的學(xué)習(xí)要點(diǎn)
轉(zhuǎn)載源:PyTorch 最基礎(chǔ)知識(shí) - 簡書
嵌牛正文:
Pytorch背景知識(shí)其實(shí)挺龐大的,可以從它主業(yè)doc介紹就能看出來,每一個(gè)函數(shù)參數(shù)非常的多趟卸。以后如果精力允許迹栓,可以滿滿研究明白一個(gè)寫一個(gè)褥琐。下邊是針對(duì)最基礎(chǔ)的一些內(nèi)容的特別精要的一些整理鸥诽。
使用方:facebook? twitter nvidia
優(yōu)點(diǎn):GPU運(yùn)算、tensor可代替numpy狂打、構(gòu)建自動(dòng)求導(dǎo)神經(jīng)網(wǎng)絡(luò)、python優(yōu)先混弥、命令式體驗(yàn)趴乡、快速輕巧
tensor:基本單元,一種張量
常用的形式(點(diǎn)擊查看官網(wǎng)內(nèi)的詳細(xì)劃分)
torch.floattensor
torch.longtensor
學(xué)習(xí)內(nèi)容點(diǎn):
pytorch的tensor 于numpy 的tensor相互轉(zhuǎn)換
需要注意 GPU 上的 Tensor 不能直接轉(zhuǎn)換為 NumPy ndarray蝗拿,需要使用.cpu()先將 GPU 上的 Tensor 轉(zhuǎn)到 CPU 上
注意左邊變量名與右邊操作名的區(qū)別
可以放在不同的GPU的方法
從GPU換回CPU的方法晾捏,尤其用numpy時(shí)要轉(zhuǎn)到CPU
為啥要從torch轉(zhuǎn)到numpy呢?因?yàn)閠orch數(shù)學(xué)運(yùn)算方式少于np;numpy計(jì)算能力更牛逼一些蛹磺;
tensor 操作分為兩種粟瞬,一種是數(shù)學(xué)運(yùn)算,一種是高級(jí)操作萤捆;
x = torch.ones(2, 2)
x = torch.ones(4, 4).float()
x[1:3, 1:3] = 2 #換元素
z = torch.add(x, y) 或z=x+y
x = torch.randn(4, 3)
sum_x = torch.sum(x, dim=1) # 沿著行對(duì) x 求和
x = x.squeeze(0) # 減少第一維
x = torch.randn(3, 4, 5)
x = x.permute(1, 0, 2)
x.size()
x.shape
x = x.view(-1, 5) # 變化緯度
max_value, max_idx = torch.max(x, dim=1) #沿著行
sum_x = torch.sum(x, dim=1) # 沿著行
print(x,x.type())
Variable
from torch.autograd import Variable #變量引入
x = Variable(x_tensor, requires_grad=True) # 如何包起來
求 x 和 y 的梯度
x = Variable(x_tensor, requires_grad=True)
z=(x+2)**2
z.backward()
print(x.grad)
靜態(tài)圖動(dòng)態(tài)圖(可見網(wǎng)盤朱庇特筆記)
靜態(tài)圖先定義計(jì)算圖(模型)不斷使用這個(gè)模型裙品,每次使用不需要重新定義
debug難
運(yùn)行快
動(dòng)態(tài)圖每次構(gòu)建生成模型
debug方便
運(yùn)行慢
在深度學(xué)習(xí)方面,有著很多的計(jì)算推導(dǎo)過程俗或,如果你是大學(xué)生或者剛剛考研結(jié)束的朋友市怎,這些數(shù)學(xué)問題不是問題。但是如果長期不用已經(jīng)遺忘辛慰,但又想明白其背后的數(shù)學(xué)理論依據(jù)区匠,可以先查看一下下邊這三個(gè)鏈接。
嵌潘щ纾總結(jié):PyTorch作為深度學(xué)習(xí)的一個(gè)重要架構(gòu)驰弄,包含很多數(shù)學(xué)知識(shí),這里介紹的是他最基礎(chǔ)的一些知識(shí)速客,有興趣的可以去官網(wǎng)了解其更深入的知識(shí)戚篙。