Variable(變量)
autograd.Variable
是包的核心類. 它包裝了張量, 并且支持幾乎所有的操作. 一旦你完成了你的計算, 你就可以調用 .backward()
方法, 然后所有的梯度計算會自動進行.
你還可以通過 .data
屬性來訪問原始的張量, 而關于該 variable(變量)的梯度會被累計到 .grad
上去.
還有一個針對自動求導實現來說非常重要的類 - Function
.
Variable
和 Function
是相互聯系的, 并且它們構建了一個非循環的圖, 編碼了一個完整的計算歷史信息. 每一個 variable(變量)都有一個 .grad_fn
屬性, 它引用了一個已經創建了 Variable
的 Function
(除了用戶創建的 Variable `` 之外 - 它們的 ``grad_fn is None
).
如果你想計算導數, 你可以在 Variable
上調用 .backward()
方法. 如果 Variable
是標量的形式(例如, 它包含一個元素數據), 你不必指定任何參數給 backward()
, 但是, 如果它有更多的元素. 你需要去指定一個 grad_output
參數, 該參數是一個匹配 shape(形狀)的張量.
import torch
from torch.autograd i