2 AutoGrad
2.1 autograd基础操作
-
计算梯度:
z.backward()
沿着计算图的每一条边计算梯度,直到叶子节点为止
-
查看梯度:
x.grad
∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z
注意: -
默认参数
backward(retain_graph=False)
下,计算图graph会被清空,如需保留,设置retain_graph=True
-
如果多次调用
backward()
函数(训练的时候多次循环),梯度会不断累加,所以在下一次求梯度之前,要使用net.zero_grad()
将梯度清零,或者x.grad.zero_()
也可以 -
默认
requires_grad=False
,而且tensor类型必须是float
需要求梯度:
x = torch.tensor([2,2],requires_grad=True,dtype = torch.float)
def f(a):
return sum(a**2)
x = torch.tensor(