在昨天的內容中,我們討論到微分在AI中扮演重要的角色,透過微分找出參數的更新方向,我們就可以使用梯度下降演算法讓我們的模型在每一次更新後,產生出更靠近我們想要的結果。
今天我們Pytorch這個工具的介紹開始,看看實際建立一個AI模型時,要如何利用梯度下降演算法來訓練模型。
import torch
# requires_grad=True表示需要算出梯度,在建立計算圖之後可以使用backward來查看計算出來的梯度
a = torch.tensor([1., 2., 3.], requires_grad=True)
b = torch.tensor([4., 5., 6.], requires_grad=True)
# 假設我們希望3a^2-b^2的平均盡量接近50
loss = 50 - (3*a**2 - b**2).mean()
loss.backward()
# 查看經由計算圖所算出的梯度
print(a.grad)
print(b.grad)