PyTorch入門
PyTorch是Facebook釋出的一款非常具有個性的深度學習框架,它和Tensorflow,Keras,Theano等其他深度學習框架都不同,它是動態計算圖模式,其應用模型支援在執行過程中根據執行引數動態改變,而其他幾種框架都是靜態計算圖模式,其模型在執行之前就已經確定。
理解pytorch,首先要理解求導的概念。 數學上求導簡單來說就是求取方程式相對於輸入引數的變化率,也就是加速度。這部分理論基礎參考高等數學的內容,上過大學的都學過,可能現在都忘了吧:) 求導的作用是用導數對神經網路的權重引數進行調整,注意這裡提到了權重引數的概念,這是神經網路的範疇定義了,關於神經網路的基礎知識本書不做介紹,讀者最好先了解有關神經網路的基本概念再讀此書。 Pytorch中為求導提供了專門的包,包名叫autograd。如果用autograd.Variable來定義引數,則Variable自動定義了兩個變數,data代表原始權重資料;而grad代表求導後的資料,也就是梯度。每次迭代過程就用這個grad對權重資料進行修正。
實踐:
import torch
from torch.autograd import Variable
x = Variable(torch.ones(2, 2), requires_grad=True)
print(x)
輸出: 1 1 1 1
[torch.FloatTensor of size 2x2]
y=x+2
print(y)
輸出:
3 3 3 3
[torch.FloatTensor of size 2x2]
z = y * y * 3
out = z.mean()
print(z, out)
輸出:
(Variable containing:
27 27 27 27
[torch.FloatTensor of size 2x2]
, Variable containing:
27
[torch.FloatTensor of size 1]
[torch.FloatTensor of size 1]
out.backward()
輸出out對x的求導:
print(x.grad)
輸出結果:
Variable containing:
4.5000 4.5000 4.5000 4.5000
[torch.FloatTensor of size 2x2]
4.5是怎麼算出來的呢,從前面的公式可以看出z=(x+2)*(x+2)3,它的導數是3(x+2)/2,當x=1時導數的值就是3*(1+2)/2=4.5。和pytorch計算得出的結果是一致的。
相關文章
- Pytorch入門-TransformsPyTorchORM
- Pytorch Dataset入門PyTorch
- Pytorch入門演練PyTorch
- pytorch入門(七):unsqueezePyTorch
- Pytorch入門下 —— 其他PyTorch
- Pytorch入門-dataloaderPyTorch
- 【Pytorch教程】迅速入門Pytorch深度學習框架PyTorch深度學習框架
- Pytorch實戰入門(一):搭建MLPPyTorch
- Pytorch入門中 —— 搭建網路模型PyTorch模型
- pytorch入門- tensor基礎操作(1)PyTorch
- Pytorch入門上 —— Dataset、Tensorboard、Transforms、DataloaderPyTorchORBORM
- Anaconda Pytorch 深度學習入門記錄PyTorch深度學習
- Pytorch入門:tensor張量的構建PyTorch
- PyTorch深度學習入門筆記(一)PyTorch環境配置及安裝PyTorch深度學習筆記
- 【筆記】PyTorch快速入門:基礎部分合集筆記PyTorch
- PyTorch入門-殘差卷積神經網路PyTorch卷積神經網路
- 使用 C# 入門深度學習:Pytorch 基礎C#深度學習PyTorch
- Pytorch DistributedDataParallel(DDP)教程二:快速入門實踐篇PyTorchParallel
- 從基礎概念到實現,小白如何快速入門PyTorchPyTorch
- PyTorch 60 分鐘入門教程:資料並行處理PyTorch並行
- 如何入門Pytorch之四:搭建神經網路訓練MNISTPyTorch神經網路
- pytorch入門2.2構建迴歸模型初體驗(開始訓練)PyTorch模型
- 分散式入門,怎樣用PyTorch實現多GPU分散式訓練分散式PyTorchGPU
- 入門入門入門 MySQL命名行MySql
- Pytorch系列:(二)資料載入PyTorch
- Pytorch資料載入與使用PyTorch
- 零基礎入門深度學習-dive in to pytorch 的程式碼報錯記錄深度學習PyTorch
- 如何入CTF的“門”?——所謂入門就是入門
- 何入CTF的“門”?——所謂入門就是入門
- scala 從入門到入門+
- makefile從入門到入門
- ACM入門之新手入門ACM
- 【小入門】react極簡入門React
- gRPC(二)入門:Protobuf入門RPC
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- 新手入門,webpack入門詳細教程Web
- Android入門教程 | RecyclerView使用入門AndroidView
- linux新手入門――shell入門(轉)Linux