假設x,w,b都是標量,z=wx+b,對標量z呼叫backward()方法,按照前面所說,我們無需對backward()傳入引數。下面我們用**來實現自動求導的主要步驟:
import torch
# 1、定義葉子節點與運算元節點
# 定義輸入張量x
x = torch.tensor([2
])# 初始化權重引數w和偏移量b,並設定requires_grad屬性為true,為自動求導
w = torch.randn(
1, requires_grad=
true
)b = torch.randn(
1, requires_grad=
true
)# 實現前向傳播
y = torch.mul(w, x)
z = torch.add(y, b)
# 檢視x,w,b的requires_grad屬性
print
("x,w,b葉子節點的requires_grad屬性:{},{},{}"
.format
(x.requires_grad, w.requires_grad, b.requires_grad)
)# 2、檢視葉子節點、非葉子節點的其他屬性
# 檢視非葉子節點的requires_grad屬性
# 因為與w,b有依賴關係,故y和z的屬性是:true,true
print
("y,z非葉子節點的requires_grad屬性:{},{}"
.format
(y.requires_grad, z.requires_grad)
)# 檢視各節點是否為葉子節點
print
("x,w,b,y,z是否為葉子節點:{},{},{},{},{}"
.format
(x.is_leaf, w.is_leaf, b.is_leaf,
y.is_leaf, z.is_leaf)
)# 檢視葉子節點的grad_fn值
print
("x,w,n的grad_fn屬性:{},{},{}"
.format
(x.grad_fn, w.grad_fn, b.grad_fn)
)# 因為x,w,b為使用者建立的,為通過其他張量計算得到的,故x,w,b的grad_fn屬性:none,none,none
# 檢視非葉子節點的grad_fn屬性
print
("y,z非葉子節點的grad_fn屬性:{},{}"
.format
(y.grad_fn, z.grad_fn)
)# 3、自動求導,實現梯度方向傳播,即梯度的反向傳播
# 基於z張量進行梯度反向傳播,執行backward之後計算圖會自動清空
z.backward(
)# 如果需要多次使用backward,需要修改引數retain_graph為true
# z.backward(retain_graph=true)
# 檢視葉子節點的梯度,x是葉子節點但它無須求導,故其梯度為none
print
("引數x,w,b的梯度分別為:{},{},{}"
.format
(x.grad, w.grad, b.grad)
)# 非葉子節點的梯度,執行backward之後,會自動清空
print
("非葉子節點y,z的梯度分別為:{},{}"
.format
(y.grad, z.grad)
)結果輸出:
x,w,b葉子節點的requires_grad屬性:false,true,true
y,z非葉子節點的requires_grad屬性:true,true
x,w,b,y,z是否為葉子節點:true,true,true,false,false
x,w,n的grad_fn屬性:none,none,none
y,z非葉子節點的grad_fn屬性:>
,>
引數x,w,b的梯度分別為:none,tensor([2
.]),tensor([1
.])非葉子節點y,z的梯度分別為:none,none
2 5 3 愛情中的那些「男女有別」
上一章,我們了解到人與人之間的愛情,不僅需要相似的個性,互補的需求,同時,我們還要 意中人的自尊,用恰當的讚美開啟對方的心門。但僅了解上述的技巧還是不夠的。通往愛情的路途依舊遙遠,作者總結出來的讓人墮入情網的要素還有三點。今天,我們就來共同了解什麼是等價原則,以及那些戀愛初期的攻心策略。2 等價原則...
Pytorch 中 torchvision的錯誤
在學習pytorch的時候,使用 torchvision的時候發生了乙個小小的問題 安裝都成功了,並且import torch也沒問題,但是在import torchvision的時候,出現了如下所示的錯誤資訊 dll load failed 找不到指定模組。首先,我們得知道torchvision在...
pytorch中的乘法
總結 按元素相乘用torch.mul,二維矩陣乘法用torch.mm,batch二維矩陣用torch.bmm,batch 廣播用torch.matmul if name main a torch.tensor 1 2,3 b torch.arange 0,12 reshape 4 3 c torch...