import torch x=torch.arange(4.0) x.requires_grad_(True)#有一个地方存梯度 y=2*torch.dot(x,x)#2倍x和x的内积 y.backward() print(x.grad) x.grad.zero_() y=x.sum() y.backward() print(x.grad) x.grad.zero_() y=x*x u=y.detach()#将y看作一个常数,不把他看作是x的函数 z=u*x;#z相当于是一个常数乘以x z.sum().backward()# print(x.grad==u) x.grad.zero_() y.sum().backward() print(x.grad==2*x)