在PyTorch中,可以通過torch.autograd
模塊來進行梯度計算和反向傳播。以下是一個簡單的示例代碼:
import torch
# 創建一個張量并設置requires_grad=True來追蹤其計算歷史
x = torch.tensor([2.0], requires_grad=True)
y = torch.tensor([3.0], requires_grad=True)
# 定義一個計算圖
z = x * y
# 計算z相對于x和y的梯度
z.backward()
# 訪問x和y的梯度
print(x.grad) # 輸出tensor([3.])
print(y.grad) # 輸出tensor([2.])
在這個示例中,我們首先創建了兩個張量x
和y
,并設置requires_grad=True
來追蹤它們的計算歷史。然后我們定義了一個計算圖z = x * y
,然后調用z.backward()
來計算z
相對于x
和y
的梯度。最后我們可以通過訪問x.grad
和y.grad
來獲取梯度值。