PyTorch學習筆記 自動求梯度

2021-10-02 20:10:47 字數 1192 閱讀 6810

在深度學習中,我們經常需要對函式求梯度(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類,並且實現 ...