Pytorch的梯度计算
Pytorch支持在创建tensor时指明requires_grad参数,当该参数为True时,Pytorch会自动追踪对该tensor进行的所有操作,每次操作的结果会具有grad_fn属性来记录所做的操作:
# 创建一个张量,并设置需要计算梯度以对它的计算进行追踪
x = torch.ones(2, 2, requires_grad=True)
print(x)
# 进行一次张量操作
y = x + 2
print(y)
print(y.grad_fn) # y作为一次操作的结果,因此具有grad_fn属性
# 对y进行更多操作
z = y * y * 3
out = z.mean()
print(z, out)
运行结果: