基本概念
autograd
是pytorch中所有神经网络的核心
torch.tensor
是程序包的中心类
其存在一个属性:.requires_grad
如果.requires_grad
为True
,那么它将开始跟踪对其的所有操作。
在完成计算后,可以调用.backward()
并自动计算所有梯度
如果要停止tensor跟踪历史记录,可以调用.detach()
将其从计算历史记录中分离出来,并防止跟踪将来的计算。
Function
对autograd的实作也十分重要
tensor
和function
相互连接并建立一个非循环图
每一个tensor
都有一个属性.grad_fn
。该属性引用Function
已创建的Tensor
结合代码理解
代码
import torch
x = torch.ones(3, 3, requires_grad=True)
print(x)
y = x+2
z = y*y*3
out = z.mean()
print(z, out)
out.backward()
print(x.grad)