深度學習的演算法本質上是通過反向傳播求導數,pytorch的autograd模組實現了此功能。
autograd.variable是autograd中的核心類,它簡單封裝了tensor,並支援幾乎所有tensor的操作。tensor在被封裝為variable之後,可以呼叫它的.backward實現反向傳播,自動計算所有梯度。
variable主要包含三個屬性
from torch.autograd import variable
# 使用tensor新建乙個variable
x = variable(t.ones(2,
2), requires_grad=
true
)# y = x.sum() = (x[0][0] + x[0][1] + x[1][0] + x[1][1])
y = x.
sum(
)# 反向傳播,計算梯度
y.backward(
)# 檢視梯度
x.grad
variable的建構函式需要傳入tensor,同時有兩個可選引數
如果想要計算各個variable的梯度,只需呼叫根節點variable的backward方法,autograd會自動沿著計算圖反向傳播,計算每乙個葉子節點的梯度。
variable.backward(grad_variables=
none
, retain_graph=
none
, create_graph=
none
)
grad在反向傳播過程中是累加的,這意味著每次執行反向傳播,梯度都會累加之前的梯度,所以反向傳播之前需把梯度清零。
# 清零
x.grad.data.zero_(
)
variable和tensor具有近乎一致的介面,在實際使用中可以無縫切換。 Pytorch 學習筆記
本渣的pytorch 逐步學習鞏固經歷,希望各位大佬指正,寫這個部落格也為了鞏固下記憶。a a b c 表示從 a 取到 b 步長為 c c 2 則表示每2個數取1個 若為a 1 1 1 即表示從倒數最後乙個到正數第 1 個 最後乙個 1 表示倒著取 如下 陣列的第乙個為 0 啊,第 0 個!彆扭 ...
Pytorch學習筆記
資料集 penn fudan資料集 在學習pytorch官網教程時,作者對penn fudan資料集進行了定義,並且在自定義的資料集上實現了對r cnn模型的微調。此篇筆記簡單總結一下pytorch如何實現定義自己的資料集 資料集必須繼承torch.utils.data.dataset類,並且實現 ...
Pytorch學習筆記
lesson 1.張量 tensor 的建立和常用方法 一 張量 tensor 的基本建立及其型別 import torch 匯入pytorch包 import numpy as np torch.version 檢視版本號1.張量 tensor 函式建立方法 張量 tensor 函式建立方法 t ...