Python自动求导

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)

 

posted @ 2022-04-20 10:27  Protect_Winter  阅读(106)  评论(0编辑  收藏  举报