在深度學習中,我們經常需要對函式求梯度(gradient)。pytorch提供的autograd包能夠根據輸⼊和前向傳播過程自動構建計算圖,並執行反向傳播。本節將介紹如何使用autograd包來進行自動求梯度的有關操作。
建立⼀個tensor並設定requires_grad屬性為true:
x = torch.ones(2,
2,requires_grad=
true
)print
(x)print
(x.grad_fn)
輸出為:
tensor([[
1.,1
.],[
1.,1
.]], requires_grad=
true
)none
再做⼀下運算操作:
y = x +
2print
(y)print
(y.grad_fn)
輸出為:
tensor([[
3.,3
.],[
3.,3
.]], grad_fn=
)>
注意x是直接建立的,所以它沒有grad_fn , 而y是通過乙個加法操作建立的,所以它有乙個為的grad_fn.
像x這種直接建立的稱為葉子節點,葉子節點對應的grad_fn為none。
2、梯度
因為out是乙個標量,所以呼叫.backward()時不需要指定求導變數:
out.backward(
)# 等價於 out.backward(torch.tensor(1.))
我們來看看 out 關於 x 的梯度 :
print
(x.grad)
輸出為:
tensor([[
4.5000
,4.5000],
[4.5000
,4.5000]]
)
pytorch中Variable的自動求導
pytorch中variable這個變數具有自動求導功能,只需要在引數列表中加入 requires grad true 舉個例子 我們如下定義 我們對矩陣進行簡單的求導var 12 34 var begin 1 2 3 4 end var 1 3 24 我們對該矩陣平方的均值進行求導,從而有如下的表...
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類,並且實現 ...